无法使用skip_before_filter在Rails中使用ActiveAdmin

我正在使用devise gem进行身份validation,并在我的ApplicationController中使用以下的before_filter:

before_filter :require_login def require_login unless user_signed_in? || params[:controller] == 'devise/sessions' flash[:error] = "You must be logged in to access that page." redirect_to new_user_session_path end end 

我最近实现了ActiveAdmin gem并尝试让skip_before_filter为ActiveAdmin工作,以便我可以访问ActiveAdmin。 我尝试了本文中概述的方法,将以下内容添加到config / initializers / active_admin.rb:

  config.skip_before_filter :require_login 

并将以下内容添加到我的一个管理模型文件listing.rb中:

 ActiveAdmin.register Listing do controller do skip_before_filter :require_login end end 

但即使在重新启动服务器和浏览器之后,它似乎也无法工作。

我究竟做错了什么?

所以有两件事:

第一:我认为你使用Devise效率低下。 您应该:而不是在application_controller上使用自定义登录方法:

 class ApplicationController before_filter :authenticate_user! end 

就是这样 – 其他一切都有效。

第二:Active Admin使用不同的用户类 – “admin_user”(而不是“user”)。 默认情况下,您将使用以下凭据:

 email: admin@example.com password: password