use*_*971 5 ruby ruby-on-rails activeadmin ruby-on-rails-4 pundit
我已经向我的应用程序添加了配置pundit addapter授权
config.authorization_adapter = ActiveAdmin::PunditAdapter
Run Code Online (Sandbox Code Playgroud)
当我使用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"]
Run Code Online (Sandbox Code Playgroud)
所以我在我的policy / 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
Run Code Online (Sandbox Code Playgroud)
结束
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
Run Code Online (Sandbox Code Playgroud)
我想念什么?谢谢您的帮助!
我找到了答案!
将这两行添加到活动管理初始化程序文件后
config.authorization_adapter = ActiveAdmin::PunditAdapter
#this line sets the default policy to application_policy.rb
config.pundit_default_policy = "ApplicationPolicy"
Run Code Online (Sandbox Code Playgroud)
我必须将其添加到app/admin/dashboard.rb下的dashboard.rb中
def index
authorize :dashboards, :index?
end
Run Code Online (Sandbox Code Playgroud)
然后我在策略文件夹中创建了一个名为仪表板策略.rb 的文件并添加了以下代码
class DashboardPolicy < ApplicationPolicy
def dashboard?
true
end
def index?
true
end
end
Run Code Online (Sandbox Code Playgroud)
这样就可以了!
| 归档时间: |
|
| 查看次数: |
3079 次 |
| 最近记录: |