使用Pundit在Rails中安装Active Admin gem时遇到一些困难。
在我的Gemfile中
gem 'activeadmin', github: 'activeadmin'
在我的active_admin.rb
中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
当我转到/ admin:
时出现此错误Pundit::PolicyScopingNotPerformedError at /admin
我想我必须定义一个政策,但我不知道在哪里。你有一个很好的教程吗?
答案 0 :(得分:1)
我认为您使用这样的方法来验证策略用法。
class ApplicationController < ActionController::Base
include Pundit
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index
end
ActiveAdmin不支持此检查。您无法在ApplicationController中配置它们,或者您需要为所有ActiveAdmin控制器跳过它们