我正在运行一个活动的管理员代码,如下所示
ActiveAdmin.register UserProcess, as: 'Summary' do
....
end
active_admin.rb-
config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.cancan_ability_class = "Ability"
config.on_unauthorized_access = :access_denied
我想阻止用户访问“摘要”页面,而实际上不阻止其从UserProcess访问。
为该页面添加cannot :manage, UserProcess
,但是它也不允许用户访问其他页面。
我的命名空间也是:actadmin
请让我知道在Ability类中编写的正确内容
答案 0 :(得分:0)
我通过创建自定义页面并在该页面上应用cancan能力解决了类似的问题,否则将能力应用于资源上。
ActiveAdmin.register_page "Summary" do
menu parent: "UserProcess", label: "Summary"
content title: "Summary" do
.......
.......
end
end
并以这种方式对其应用能力:
class Ability
include CanCan::Ability
def initialize(users)
can :manage UserProcess
cannot :manage, ActiveAdmin::Page, name: "Summary"
end
end
如果到时候发现了另一个更清洁的解决方案,请编辑我!