2016-04-13 28 views
0

PunditでRailsにActive Admin Gemをインストールするにはいくつかの困難があります。アクティブな管理者とPundit

Pundit::PolicyScopingNotPerformedError at /admin 

は私が定義する必要が思う:私は/管理者に行くとき、私はこのエラーを持っている

def authenticate_admin! 
    redirect_to new_user_session_path unless current_user && current_user.admin 
end 
ActiveAdmin.setup do |config| 
    # [...] 
    config.authentication_method = :authenticate_admin! 
    # [...] 
    config.current_user_method = :current_user 
    # [...] 
    config.logout_link_path = :destroy_user_session_path 
    # [...] 
    config.logout_link_method = :delete 
end 

私active_admin.rbで私のGemfile

gem 'activeadmin', github: 'activeadmin' 

私はどこにいるのかわからない。このための良いチュートリアルはありますか?

答えて

1

私はポリシーの使用状況を確認するために、このようなものを使用すると思います。

class ApplicationController < ActionController::Base 
    include Pundit 
    after_action :verify_authorized, except: :index 
    after_action :verify_policy_scoped, only: :index 
end 

ActiveAdminはこのチェックをサポートしていません。あなたはApplicationControllerにそれらを設定することはできませんか、私はApplicationControllerにでこれを持っているすべてのActiveAdminコントローラ

+0

のためにそれらをスキップする必要がありますを除いて、verify_authorized::: は '評論家 after_action含まインデックスを、しない限り::devise_controller? after_action:verify_policy_scoped、のみ::インデックス、::devise_controller? ' だから私は':unless:active_admin_controller? 'のようなものを追加しなければならないのですか? –

+0

あなたは '::devise_or_active_admin_controller? 'のようなものが必要です –

+0

ありがとう!だから、私のApplicationControllerでこれをしました: 'Punditを含めて after_action:verify_authorized、:indexを除いて::devise_or_admin_controller? after_action:verify_policy_scoped、のみ::インデックス、::devise_or_admin_controller? ' と ' def devise_or_admin_controller? devise_controller? || params [:controller] =〜/admin\/.*/ end' –

関連する問題