0

我正在使用cancan gem,但我有点困惑。有什么区别:

  can :read, Post
  can :read, :post
  can :read, @post

什么是更好(安全)的方式?

4

1 回答 1

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
于 2013-11-04T14:12:39.247 回答