灿灿灿。如何仅显示属于当前登录管理员的项目

CanCanCan. How to show only items that belong to that current logged in admin

我已经完成了 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_idadmin_user_iduser_id 或指向通知所属的 admin_user 的任何键的通知上执行此操作。这样你说的其实是 "let admin_user be able to read the notifications which belong to him"