2014-09-26 72 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