Я использую механизм проверки cancancan в моем приложении rails. Я хочу, чтобы только те пользователи, которые являются владельцами своих собственных сообщений и комментариев, редактировались и удалялись, а администратор мог управлять всеми вещами. моя способность администратора работает нормально, но другие не работают. вот мой ability.rb файлcancancan способность с рельсами 4.0
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.admin?
can :manage, :all
else
can :read, :all
can :create, Topic
can :update, Topic do |topic|
topic.try(:user) == user
end
can :delete, Topic do |topic|
topic.try(:user) == user
end
can :delete, Comment do |comment|
comment.try(:user) == user
end
# can :manage, Comment, :task => { :user_id => user.id }
can :update, Comment do |comment|
comment.try(:user) == user
end
end
end
конец , что я должен сделать для того, чтобы работать должным образом. его работает должным образом на темы, но не для комментариев
это строка в моих темах contrller
load_and_authorize_resource :topic