我需要帮助才能使用ActiveAdmin配置CanCanCan。我还有其他一切工作,包括设计。我可以使用设计来限制菜单,但如果您知道URL可以说是编辑,您仍然可以编辑该资源。我想限制普通用户编辑/创建任何资源,但它似乎不起作用。
Active_Admin.rb
config.cancan_ability_class = ActiveAdmin::CanCanAdapter
Ability.rb(开箱即用)
class Ability
include CanCan::Ability
def initialize(user)
# Define abilities for the passed in user here. For example:
#
# user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, Student
else
can :read, Student
end
end
end
用户模型。
admin:boolean
如果我使用不是管理员的用户登录,我仍然可以创建/编辑/删除,我只想将它们限制为只读。
请帮助我努力完成我需要完成的这项功能。
提前致谢
答案 0 :(得分:3)
改变这个想法:
config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.cancan_ability_class = Ability
authorization_adapter
告诉活动管理员应该使用哪个适配器。
cancan_ability_class
告诉适配器它应该使用哪个类。
如果仍然无效,请尝试将Ability
重命名为AdminAbility
。