Ruby on rails Can';不要让skip_before_过滤器与Rails中的ActiveAdmin一起工作
我正在使用Desive gem进行身份验证,并且在我的应用程序控制器中具有以下before_筛选器:Ruby on rails Can';不要让skip_before_过滤器与Rails中的ActiveAdmin一起工作,ruby-on-rails,devise,activeadmin,before-filter,Ruby On Rails,Devise,Activeadmin,Before Filter,我正在使用Desive gem进行身份验证,并且在我的应用程序控制器中具有以下before_筛选器: 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." red
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_过滤器为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
但即使在重新启动服务器和浏览器后,它似乎也不起作用
我做错了什么?有两件事:
第一:我认为你使用Desive的效率很低。您应该:
class ApplicationController
before_filter :authenticate_user!
end
就这样,其他一切都正常
第二:activeadmin使用不同的用户类——“Admin_user”(而不是“user”)。默认情况下,您将使用以下凭据:
email: admin@example.com
password: password
所以有两件事:
第一:我认为你使用Desive的效率很低。您应该:
class ApplicationController
before_filter :authenticate_user!
end
就这样,其他一切都正常
第二:activeadmin使用不同的用户类——“Admin_user”(而不是“user”)。默认情况下,您将使用以下凭据:
email: admin@example.com
password: password
使用设计验证用户!方法解决了我的问题。谢谢使用设计验证用户!方法解决了我的问题。谢谢