我一直在关注使用康康斯的Ryan Bates的railscast,但是我很难理解为什么检查一个用户是否写了一篇评论,然后让他们编辑它,如果他们有,就不会为我工作。如何让用户只更新他们使用cancan编写的评论?
继承人的代码,我有:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.role == "admin"
can :manage, :all
else
can :read, :all
if user.role == "author"
can :create, Review
can :update, Review do |review|
review.try(:user) == user
end
end
end
end
end
我希望作者能够只能够更新他们写的评论,所有其他的能力做工精细,但在一分钟作者可以更新由大家写评论,我在这里错过了什么?
即时通讯使用的能力,以决定是否要在回顾部分显示编辑链接:
<% if can? :update, Review %>
testing
<% end %>
感谢您的帮助!
感谢您的答案,它仍然没有使用'@review',但使用'审查'确实奏效。 – Dave 2011-06-08 12:33:15