2013-12-17 9 views
5

私はリソースOrderを持っています。私の管理パネル(activeadmin)には、ユーザが特定の役割を持つすべての注文を取得するためにブールフィルタが必要です。レールとRansack Active Admin Rails4カスタムフィルタ

filter :client_only, as: :check_boxes 

3(メタサーチ):私は次のフィルタを追加しましたアクティブな管理order.rbで

class Order 
    belongs_to :user 
    scope :client_only_in, -> { joins(:user).where('users.role = ?', 'client') } 
end 

:Orderクラスで

私はこのような範囲をしました私は追加することができます

フィルタを得るが、レール4とRansack私はこれを行う方法を知らない。次モデルにsearch_methodを追加することなく、

は、私はエラー

undefined method `client_only_in' for Ransack::Search 

私は、インデックス管理者の注文ページをご覧得ます。

助けが必要ですか?

答えて

3

私は正確にこれを行う方法を知りませんが、あなたは常にユーザーの役割に基づいてフィルタリングする選択フィールドを持つことができます。

filter :users_role, as: :select, multiple: true, collection: proc{ User.uniq.pluck :role } 

UPDATE:ああ、注文belongs_toユーザー以外の場合それはの代わりに:user_roleでなければなりません

+0

私はこの作業をRails 4で手に入れることができませんでした。ここでは私が見つけた解決策が見つかりました:http://cavewall.jaguardesignstudio.com/2014/05/01/activeadmin-filters -with-ransack / – smcdrc

関連する問題