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

问题描述 投票:1回答:1

我已经阅读了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'
ruby-on-rails cancan cancancan
1个回答
0
投票

不知道什么是Notification,但如果让我们说Notification belongs_to :admin因此有admin_id专栏,我相信你应该这样写它

can :read, Notification, admin_id: admin_user.id

换句话说,您不应该在具有特定id的通知上设置该功能。您应该对具有特定admin_idadmin_user_iduser_id的通知或指向通知所属的admin_user的任何密钥执行此操作。这样你实际上说“让admin_user能够读取属于他的通知”

© www.soinside.com 2019 - 2024. All rights reserved.