rails cancan gem ,, can in ability.rb如何使用

时间:2013-11-04 13:44:07

标签: ruby-on-rails cancan

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

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

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

1 个答案:

答案 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