【问题标题】:ActiveAdmin filter users by roleActiveAdmin 按角色过滤用户
【发布时间】:2012-12-05 08:05:13
【问题描述】:

我希望能够在活动管理员中过滤设计用户,以便我可以显示用户列表,然后按用户的角色过滤这些用户。

我拥有的是:

class User < ActiveRecord::Base
  has_many :user_permissions
  has_many :roles, :through => :user_permissions

class Role < ActiveRecord::Base
  has_many :user_permissions
  has_many :users, :through => :user_permissions

class UserPermission < ActiveRecord::Base
  belongs_to :user, :dependent => :destroy
  belongs_to :role

那么过滤器就是:

ActiveAdmin.register User do
  filter :roles, as: :select, collection: proc { Role.all }

但我得到的是这个错误:

    undefined method `role_ids_eq' for #<MetaSearch::Searches::User:0x0000012a2f7170>

【问题讨论】:

    标签: ruby-on-rails devise activeadmin


    【解决方案1】:

    我不知道过滤器的活动管理员工作,但如果您正在谈论查询过滤器,那么这将起作用 -

    User.where(:role => 'admin')
    

    注意:上面的查询会给出角色admin的所有用户。

    如前所述,Rails 3 引入了一个新的查询接口,用于在 Active Record 中执行查找。

    http://railscasts.com/episodes/202-active-record-queries-in-rails-3

    【讨论】:

      【解决方案2】:

      尝试类似:

      ActiveAdmin.register User do
        filter :user_roles, as: :select, collection: proc { Role.all }
      

      如果关系正常,应该可以工作

      【讨论】:

        猜你喜欢
        • 2013-01-27
        • 2015-08-15
        • 2017-09-02
        • 1970-01-01
        • 1970-01-01
        • 2016-04-07
        • 1970-01-01
        • 2022-10-01
        • 1970-01-01
        相关资源
        最近更新 更多