红宝石搜索下拉

时间:2010-05-11 16:15:13

标签: ruby-on-rails ruby search drop-down-menu

我的Type模型中有Products的下拉列表。

我希望能够在Products index.html.erb中进行搜索,以便用户从下拉列表中选择一种类型,点击搜索并返回与该类型匹配的所有产品。

我可以让普通的搜索方法在用户在文本框中输入搜索的地方工作,但是当他们只从下拉列表中选择时我无法使用它。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在您的控制器中:

def index
  @products = Product.all :conditons => {:type => params[:type]}
end

在您看来:

<% form_tag products_path, :method => :get do %>
  <%=select_tag :type, options_for_select(Product::TYPES.map{ |type| [type, type]}), :onchange => "this.form.submit();" %>
  <%=submit_tag "Search" %>
<% end %>

注意:options_for_select接受一对数组作为[label,value],所以我们使用map来构建它。