我已经阅读了Rails教程和Cancancan,ActiveAdmin文档。现在我在尝试进行授权时遇到困难,允许当前登录的admin_user只能看到属于该admin_user的通知。这是我的代码:
def initialize(admin_user)
can :read, AdminUser, id: admin_user.id
can :read, ActiveAdmin::Page, name: "Dashboard", namespace_name: "admin"
can :read, Notification, id: notification.admin_user_id
end
我尝试使用notification.admin_user_id部分,但我总是得到错误
undefined local variable or method 'notification'
不知道什么是Notification
,但如果让我们说Notification
belongs_to :admin
因此有admin_id
专栏,我相信你应该这样写它
can :read, Notification, admin_id: admin_user.id
换句话说,您不应该在具有特定id
的通知上设置该功能。您应该对具有特定admin_id
或admin_user_id
或user_id
的通知或指向通知所属的admin_user
的任何密钥执行此操作。这样你实际上说“让admin_user能够读取属于他的通知”