Я запустил приложение Rails с Devise и CanCan. У меня есть пользователи, которые имеют отношение к статьям от одного -до -многих. Я новичок в CanCan, вот что я планирую сделать:
Админ
Зарегистрированный пользователь
Гость
Но у меня проблемы с пониманием синтаксиса CanCan. Я понимаю, что это будет что-то вроде этого.
def initialize(user)
user ||= User.new
if user.admin?
can :manage, Article
else
can :read, Article
end
end
Но это только для администратора и гостевого пользователя, я не уверен, как отличить гостевого пользователя от вошедшего в систему пользователя, потому что он создает новый объект пользователя, когда пользователь пуст. Я видел, что код должен быть примерно таким can [:edit, :destroy], Article, :user_id => user.id
, но я не уверен, как это поместится в методе инициализации.
И последний вопрос: если я определю can :read, Article
только для гостей, будет ли он блокировать другие действия, такие как создание и обновление, например добавление в белый список действия чтения?
Любая помощь будет оценена по достоинству. Большое спасибо!