2014-09-26 96 views
0

我試圖創建一個可以找到帶有複選框的產品的表單。我認爲問題在於我沒有將數組傳遞給我的控制器。有誰知道如何解決這一問題?帶複選框的搜索表單

型號

def self.search(params) 
    arel = order('created_at DESC') # note: default is all, just sorted 
    arel = arel.where('name LIKE ?', "%#{params[:search]}%").order('created_at DESC') if params[:search].present? 
    arel 
end 

控制器

def index 
    @products = Product.search(params) 
end 

查看

<%= form_tag(products_path, :method => "get", id: "search-form") do %> 
<%= check_box_tag :search, "product1", nil %> 
<%= check_box_tag :search, "product2", nil %> 
<%= submit_tag "Search" %> 
<% end %> 
+0

什麼是錯誤? – bkdir 2014-09-26 17:52:48

+0

搜索工作,但是當我點擊兩個複選框時,我只能得到一個結果。 – jblom 2014-09-26 17:58:14

回答

0

兩個複選框是相同的:search所以纔有了最後一次檢查一個被髮送。嘗試這樣的:

<%= check_box_tag "search[]", "product1" %> 
<%= check_box_tag "search[]", "product2" %> 
+0

是的,那麼它應該被保存到一個數組中。但是,當我將其更改爲search []時,該複選框不會顯示任何結果。 – jblom 2014-09-26 20:16:13