Доступ к разработке методов помощника от Cancan и т. Д.
-
28-09-2019 - |
Вопрос
Это похоже на легкий вопрос, который я просто не могу обернуть голову.
Использование разработки для аутентификации и CANCAN для авторизации в приложении New Rails 3.
Как я могу получить доступ к методам, определенным в ApplicationController
внутри Ability
Класс, который предоставляет Канкан?
ака, что-то вроде этого:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # Guest user.
can :create, Post if user_signed_in?
end
end
куда user_signed_in?
определяется в ApplicationController
.
Решение
Это может не быть ответом, который вы хотели, но кажется, что вы хотите смешать кодовые проблемы, которые не должны быть смешаны.
Это хорошая идея для доступа user_signed_in?
Внутри ваших правил авторизации? ... Поскольку разрешение касается только того, что кто-то может сделать, и не должен беспокоиться, если кто-то аутентифицирован (или нет).
Перед фильтром (before_filter :authenticate_user!
) на контроллере ваших постов, чтобы убедиться, что ваш пользователь аутентифицируется, должно быть достаточно, чтобы добиться вашей цели; Ваши правила авторизации могут быть запущены наряду Проверка аутентификации, а не перепутана с этим кодом.
Это слоистый подход :-)