如何创建自定义ActiveAdmin过滤器?

时间:2016-03-28 21:35:09

标签: ruby-on-rails filter activeadmin ransack

我尝试在Rails 4中使用带有Ransack的ActiveAdmin创建自定义过滤器,如下所示:

  1. 在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
    
  2. 将其添加为用户管理员注册的过滤器。

     filter :by_group, label: 'By Group', as: :select, collection: proc { Group.where('code not in (?)', ['erroneous']).to_a.map{|p| [p.name, p.code]} }
    
  3. 然而,这不起作用。选择一个选项时,单击FILTER按钮:

    1. 结果列表会忽略过滤器字段(即其他过滤器可能适用,但我关心的过滤器不适用)。
    2. 搜索表单字段重置为值“Any”(其他字段不会重置)。
    3. 我的目标:

        

      给定一组可用的Group实例,我想通过其代码选择一个组,并让用户满意User.with_role(代码)

      我错过了什么?

      版本:
      Rails 4.2.0
      ActiveAdmin 1.0.0.pre2

0 个答案:

没有答案