如何创建Rails下拉过滤器

时间:2012-12-10 21:19:12

标签: ruby-on-rails dropdownbox

我正在尝试在Rails 3.2中创建一个下拉过滤器。

我已经看到了这些方面的解决方案,但我不确定如何在我的情况下实现它们。 Filter results on index page from dropdown

我有一张events的表格,我想要一个下拉框来按category过滤这些事件。我使用params在视图中沿着这些线做了一些事情:

<% @event.events_by_category(sanitize_output(params[:cat])).each do |e| %>
  ...
<% end %>

然后在event模型中使用以下内容:

def self.events_by_category(cat)
  if cat == nil
    all
  else
    where("category = ?", cat)
  end
end

但是,创建一个刷新URL以在jQuery中包含params的下拉列表似乎很脏。

在Rails中完成此类下拉列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我通过使用selectbox的表单标签找到了一个不错的解决方案,如下所示:

<%= form_tag events_path, method: 'get' do %>
  <%= select_tag :cat, Options::TYPE %>
  <%= submit_tag 'Filter %>
<% end %>