我正在使用 CanCan 和 Devise 进行应用程序中的身份验证过程,一切都运行良好。
但是,我们有一个设置,用户可以在其中创建项目列表。
List 模型有一个 user_id 并且身份验证可以正常工作,但是项目的所有权是通过 List :has_many Item 关系处理的,而 Item 实际上没有 user_id 列。
CanCan 如何处理这个问题?
我试过了
can :manage, Item do |item|
item.list.user_id = user.id
end
但在 URL 上输入项目 ID 后,每个用户都可以访问每个项目,无论列表所有权如何。
我在 Cancan 的 github 上的 wiki 中找不到任何似乎涵盖此内容的内容,因此希望这里有人能够提供帮助
期待评论 谢谢
最佳答案
您是否将 =
与 ==
混淆了?
can :manage, Item do |item|
item.list.user_id == user.id
end
关于ruby-on-rails-3 - 通过模型关系使用 CanCan 授权操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618512/