2012-12-05 47 views
1

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

我所拥有的是:

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> 

回答

0

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

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

说明:以上查询将为所有用户提供角色admin

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

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

0

尝试类似:

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

如果关系是好的,应该工作