我尝试在Rails 4中使用带有Ransack的ActiveAdmin创建自定义过滤器,如下所示:
在User类中创建一个ransacker。
ransacker :by_group, formatter: proc { |v|
data = User.with_role(v).map(&:id)
data.present? ? data : nil
} do |parent|
parent.table[:id]
end
将其添加为用户管理员注册的过滤器。
filter :by_group, label: 'By Group', as: :select, collection: proc { Group.where('code not in (?)', ['erroneous']).to_a.map{|p| [p.name, p.code]} }
然而,这不起作用。选择一个选项时,单击FILTER按钮:
我的目标:
给定一组可用的Group实例,我想通过其代码选择一个组,并让用户满意User.with_role(代码)
我错过了什么?
版本:
Rails 4.2.0
ActiveAdmin 1.0.0.pre2