我正在使用cancan gem,但我有点困惑。 有什么区别:
can :read, Post
can :read, :post
can :read, @post
什么是更好(安全)的方式?
答案 0 :(得分:1)
can :read Post
表示用户可以阅读任何帖子,因为它通常引用模型
can :read @post
can :read :post
表示用户可以阅读该特定帖子(通常是因为帖子与用户或类似的帖子有belongs_to关联)
如何设置您的能力页面的示例:
if user.admin?
can :read Post #admin can read any post
else
can :read Post, :user_id => user.id #non-admins can read only posts that belong to them.
end