假设你正在编写Blogger的软件。
每个用户只能在拥有博客的情况下创建博客文章。在这种情况下,CanCan通常会定义以下能力检查:
user.can? :create, Post
然而,仅当用户是当前博客的所有者时,才能创建帖子,并且没有办法只使用其类名引用当前博客。我真正需要做的是:
user.can? :create, Post, @current_blog
这样,在cancan定义中,我可以说
can :create, Post do |post, blog|
user == blog.owner
end
这是可能的,还是我对我的方法有些困惑?