我已将配置权限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
我错过了什么?谢谢你的帮助!
答案 0 :(得分:1)
我找到了答案!
将这两行添加到活动的管理初始化文件
之后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
这让它运转了!