我一直在關注使用康康斯的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