Ransack Gem Rails和multiselect

时间:2015-08-05 14:08:55

标签: ruby-on-rails ruby search jquery-chosen ransack

我正在使用我的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

搜索有效。

你能帮帮我们吗

非常感谢

2 个答案:

答案 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是一个模型属性,我们有多个选择值用于过滤器。