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

フィルターのアクティブな管理者の作業についてはわかりませんが、クエリフィルターについて話している場合、これは機能します-

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 に答える
0

次のようなものを試してください:

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

関係が良好であれば、うまくいくはずです

于 2014-02-26T15:35:04.233 に答える