【问题标题】:Rails3 replace search box with select dropdownRails3用选择下拉列表替换搜索框
【发布时间】:2011-10-22 18:19:39
【问题描述】:

有没有办法在 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]]) %>     

这会导致参数数量无效。

最好的方法是什么?

【问题讨论】:

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


    【解决方案1】:

    签出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 与此有关。

    【讨论】:

    • 太好了,谢谢!!现在我要做的就是弄清楚如何在选择时触发我的 ajax 请求并忘记搜索按钮:) jx
    • 这很简单。我将在几分钟内添加对上述答案的编辑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多