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 へのリダイレクト ループを作成します。
config/application.rb ファイルに skip_before_filter を追加してこれを軽減しようとしましたが、うまくいきませんでした
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 で 2 つのコントローラーを明示的に除外しようとしましたが、これも何もしませんでした。
before_filter :authenticate_user!, except: {controller: [:users, 'devise/sessions']}
このやや厄介な問題を回避するにはどうすればよいですか?