Ransack Gem Rails和multiselect

问题描述 投票:3回答:2

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

搜索工作。

你能帮帮我们吗?

非常感谢

ruby-on-rails ruby search jquery-chosen ransack
2个回答
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
投票

一般来说,我们可以这样写

= f.collection_select :some_id_in, Model.all, :id, :name, {}, {:multiple => true}

其中some_id是一个模型属性,我们有多个选择值用于过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.