我有一个带有 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']}
我该如何解决这个相当烦人的问题?