如何让Active Admin在登录后与Pundit合作
我已将配置权威addapter授权添加到我的应用程序中
config.authorization_adapter = ActiveAdmin::PunditAdapter
当我使用admin@example.com凭据登录时,我收到此错误。
Pundit::NotDefinedError in Admin::Dashboard#index unable to find policy AdminUserPolicy Extracted source (around line #2): insert_tag active_admin_application.view_factory["page"]
所以我在policies / active_admin文件夹中创建了这些文件
adminuser_policy.rb
module ActiveAdmin class AdminUserPolicy < ApplicationPolicy class Scope < Struct.new(:user, :scope) def resolve scope end end def home? true end def index? true end def show? true end def new? true end def create? true end def update? true end def destroy? true end end
结束
page_policy.rb
module ActiveAdmin class PagePolicy < ApplicationPolicy class Scope < Struct.new(:user, :scope) def resolve scope end end def index? true end def show? true end end end
我错过了什么? 谢谢您的帮助!
我找到了答案!
将这两行添加到活动的admin初始化文件后
config.authorization_adapter = ActiveAdmin::PunditAdapter #this line sets the default policy to application_policy.rb config.pundit_default_policy = "ApplicationPolicy"
我不得不将此添加到app / admin / dashboard.rb下的dashboard.rb中
def index authorize :dashboards, :index? end
然后我在我的policies文件夹中创建了一个名为dashboard_policy.rb的文件并添加了此代码
class DashboardPolicy < ApplicationPolicy def dashboard? true end def index? true end end
这让它运作了!