models /ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :admin
can :manage, :all
else
can :read, :all
can :create, Comment
can :update, Comment do |comment|
comment.try(:user) == user || user.role?(:moderator)
end
if user.role?(:author)
can :create, Article
can :update, Article do |article|
article.try(:user) == user
end
end
end
end
end
В Railscasts есть методы user.role?: admin & if user.role? (: author). Я не понимаю.Нужно ли создавать метод в модели, чтобы он работал?
Я храню роли в таблице Users как столбец роли.