ActiveAdmin 过滤器 - 查找所有带有空白字段的过滤器
ActiveAdmin filters- find all with a blank field
我有一个针对用户的 ActiveAdmin 过滤器菜单,其中列出了很多这样的菜单:
filter :id
filter :full_name
filter :age
filter :supervisor, collection: Supervisors.all
我想查询主管字段设置为零的所有用户。我该怎么做?
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 被掠夺者变成了 nil
我有一个针对用户的 ActiveAdmin 过滤器菜单,其中列出了很多这样的菜单:
filter :id
filter :full_name
filter :age
filter :supervisor, collection: Supervisors.all
我想查询主管字段设置为零的所有用户。我该怎么做?
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 被掠夺者变成了 nil