2011-08-08 36 views
0

有沒有辦法用rails3搜索功能中的選擇替換text_field_tag?Rails3替換搜索框與選擇下拉

我目前的搜索方式:

<%= 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]]) %>  

導致無效的參數數目。

這樣做的最好方法是什麼?

回答

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了。

+0

非常感謝!現在我所要做的就是弄清楚如何在選擇時激發我的ajax請求並忘記搜索按鈕:) jx –

+0

這很簡單。我會在幾分鐘內在上面的答案中添加編輯 – Krule

+0

再次感謝,非常感謝。 –