2012-12-05 51 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 } 

如果關係是好的,應該工作