无法使用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
- 活动管理员:包括Javascript
- 如何在ActiveAdmin中覆盖“after_sign_up_path_for”?
- ActiveAdmin自动加载完整关联表
- 如何使用ActiveAdmin或RailsAdmin保持DRY,与主应用程序分开
- Active Admin -refresh第二次下拉基于第一次下拉选择(Rails 3.2)
- Rails3 Active Admin:如何在首次点击Shipments标签时仅显示打开状态记录?
- 主动管理员减慢了rails应用程序
- ActiveAdmin:如何覆盖索引控制器操作:nil的未定义方法`base’:NilClass
- 使用ActiveAdmin处理多个管理类型登录