Rails3用选择下拉列表替换搜索框

时间:2011-08-08 21:29:19

标签: ruby-on-rails ruby-on-rails-3

有没有办法用rails3搜索功能中的select替换text_field_tag?

我目前的搜索表单:

<%= form_tag orders_path, :method => 'get', :id => "orders_search" do %>
<p><%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :name => nil %></p>

我想用下拉列表替换以限制/过滤我的客户结果。我试过这个:

    <%= select :search, params[:search], ([["Pending"], ["Open"], ["Closed"]]) %>       

然而,这给了我一个500错误和日志中的输出:

TypeError (expected Array (got String) for param `search'):

我也试过了:

    <%= select :search, ([["Pending"], ["Open"], ["Closed]]) %>     

导致参数数量无效。

最好的方法是什么?

1 个答案:

答案 0 :(得分:6)

检查Select helper methods in Ruby on Rails

你可以做你需要的事情:

<%= select_tag "search", options_for_select([ "Pending", "Open", "Closed" ], params[:search]) %>  

- 编辑 -

为了在你的application.js中选择添加以下内容提交表单(如果你使用jQuery):

$(document).ready(function() {

  $("select#search").change(function(){
    $(this).closest("form").submit();
  });

});

关于此问题已经有few stack overflow answers

相关问题