Я следил за рельсовой трансляцией Райана Бейтса об использовании канкана, но не понимаю, почему проверка того, написал ли пользователь обзор, а затем разрешение ему редактировать его, если он это сделал, не работает для меня.
вот код у меня есть:
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 %>
Спасибо за любую помощь!