我在应用程序中使用CanCan和Devise进行身份验证过程,一切都运行良好。
但是,我们有一个设置,用户可以在其中创建项目列表。
List模型有一个user_id,auth可以正常工作,但是项目的所有权是通过List处理的:has_many Item关系,而Item实际上没有user_id列。
CanCan如何处理这个问题?
我试过
can :manage, Item do |item|
item.list.user_id = user.id
end
但在网址上输入Item ID可让每个用户都能访问每个项目,无论列表所有权如何。
我在Cancan的github的wiki中找不到任何似乎覆盖这个内容的东西,所以希望有人可以帮助
期待发表评论 感谢
答案 0 :(得分:5)
您是否将=
与==
混淆了?
can :manage, Item do |item|
item.list.user_id == user.id
end