ActiveAdmin过滤器 - 查找所有空白字段

时间:2016-03-08 14:40:38

标签: ruby-on-rails activeadmin

我有一个针对用户的ActiveAdmin过滤器菜单,其中一堆列出如下:

filter :id
filter :full_name
filter :age
filter :supervisor, collection: Supervisors.all

我想查询所有用户的主管字段设置为nil。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

filter本身不允许您搜索空白,我认为您必须通过向您的用户模型添加搜索引擎来解决此问题:

ransacker :by_supervisor, formatter: proc{ |v|
  v=nil if v==0
  data = User.where(supervisor: v).ids
  data = data.present? ? data : nil
} do |parent|
  parent.table[:id]
end

并在ActiveAdmin模块中而不是普通过滤器

filter :supervisor, collection: [Supervisor.new(id: 0, name: 'None'), Supervisor.all].flatten

这提供了一个id = 0的Supervisor,允许搜索“no supervisors”,id = 0被ransacker变为nil