我正在使用我的rails应用程序的ransack gem并且有多选的问题。我有工作和公司模式,公司有很多工作,工作属于公司。我想对工作进行搜索,以便人们可以看到来自特定公司的工作,我做了一些研究,显然这应该在搜索表单中工作:
= search_form_for @q do |f|
= f.collection_select :company_name_cont, Company.all, :id, :name, {:multiple => true}, class: 'chosen-it'
= f.submit "search"
所以在视图中我得到了列表(从所选宝石中自动完成)但是当我点击搜索时它没有返回任何结果,我无法选择多个公司。
但是,当我使用搜索字段时,请改为:
= f.search_field :company_name_cont
搜索工作。
你能帮帮我们吗?
非常感谢
你应该使用company_name_in
而不是company_name_cont
:
= f.collection_select :company_name_in, Company.all, :id, :name, {}, {:multiple => true}
更多信息可以在ransack的wiki中找到:https://github.com/activerecord-hackery/ransack/wiki/Basic-Searching#in
一般来说,我们可以这样写
= f.collection_select :some_id_in, Model.all, :id, :name, {}, {:multiple => true}
其中some_id是一个模型属性,我们有多个选择值用于过滤器。