У меня есть приложение с Devise (2.2.3) и Active Admin (0.5.1). Сначала я установил Devise, а затем Active Admin. Все приложение должно находиться за логином, поэтому в моем контроллере приложений у меня есть следующее:
before_filter :authenticate_user!
Однако после установки Active Admin в корневом пространстве имен (config.default_namespace = false
, в initializers/active_admin.rb) мое приложение теперь не позволяет никому войти в систему. Он создает цикл перенаправления на путь /users/login.
Я пытался облегчить это, добавив skip_before_filter в мой файл config/application.rb, но это не сработало.
config.to_prepare do
Devise::SessionsController.skip_before_filter :authenticate_user!
UsersController.skip_before_filter :authenticate_user!
end
и я также добавил следующее в app/admin/user.rb
controller do
skip_before_filter :authenticate_user!
end
что тоже ничего не сделал. Наконец, я попытался явно исключить два контроллера из моего application_controller.rb, но это тоже ничего не дало.
before_filter :authenticate_user!, except: {controller: [:users, 'devise/sessions']}
Как мне обойти эту довольно досадную проблему?