我希望能够在活动管理员中过滤设备用户,以便我可以显示用户列表,然后按照他们的角色过滤这些用户。
我拥有的是:
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 :(得分:0)
我不知道有关过滤器的主动管理工作,但如果您正在讨论过滤器,那么这将有效 -
User.where(:role => 'admin')
注意:以上查询将为所有用户提供admin
角色。
如上所述,Rails 3引入了一个新的查询接口,用于在Active Record中执行查找。
http://railscasts.com/episodes/202-active-record-queries-in-rails-3
答案 1 :(得分:0)
尝试类似:
ActiveAdmin.register User do
filter :user_roles, as: :select, collection: proc { Role.all }
如果关系合适可行