401使用Active Admin和Devise重定向循环

时间:2013-04-10 20:55:46

标签: devise ruby-on-rails-3.2 activeadmin redirect-loop

我有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中明确排除两个控制器,但这也没有做任何事情。

before_filter :authenticate_user!, except: {controller: [:users, 'devise/sessions']}

如何解决这个相当恼人的问题?

1 个答案:

答案 0 :(得分:4)

通过更改我的路线来解决问题。 ActiveAdmin路由需要在Devise路由之后,如下所示:

devise_for :users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)

相信这是因为我安装并配置了Devise后安装了ActiveAdmin。