Вы можете добавить этот код на любой контроллер, для которого вам нужна аутентификация, вам не нужно UsersController
before_filter :authenticate_user!
эта строка требует, чтобы действительный пользователь выполнил вход с помощью devise, поэтому если вы попытаетесь получить доступ к контроллеру с помощью before_filter без регистрации, вы будете перенаправлены devise на sign_in_path
load_and_authorize_resource # CanCan
эта другая строка заполнит переменную экземпляра значением по умолчанию (если оно еще не установлено), а затем проверит ваши привилегии с помощью класса Ability
, поэтому при условии, что у вас есть ArticleController
, он сделает следующее за кулисами ( фактический код основан на текущем действии)
# for the show action
@article = Article.find(params[:id])
raise CanCan::AccessDenied unless can(:read, @article)
Оператор can(:read, @article)
является сердцем библиотеки CanCan, он будет возвращать логическое значение, основанное на вашем классе способностей. Можете прочитать больше об этом здесь
Если все ваше приложение требует аутентификации, вы можете просто добавить строку before_filter :authenticate_user!
в ApplicationController