我正在使用我的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
搜索有效。
你能帮帮我们吗
非常感谢
答案 0 :(得分:1)
您应该使用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
答案 1 :(得分:1)
一般来说,我们可以将其写为
= f.collection_select :some_id_in, Model.all, :id, :name, {}, {:multiple => true}
其中some_id是一个模型属性,我们有多个选择值用于过滤器。