1

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

我所拥有的是:

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>
4

2 回答 2

0

尝试类似:

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

如果关系还可以,那应该可以

于 2014-02-26T15:35:04.233 回答
0

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

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

注意:上面的查询将给所有具有角色的用户admin

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

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

于 2012-12-05T08:38:19.613 回答