主动管理员和专家

时间:2016-04-13 12:55:19

标签: activeadmin

使用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

我想我必须定义一个政策,但我不知道在哪里。你有一个很好的教程吗?

1 个答案:

答案 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控制器跳过它们