[英]Can't get skip_before_filter to work with ActiveAdmin in Rails
我正在使用devise gem進行身份驗證,並且在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。 我試圖在此介紹的方法后 ,加入以下配置/初始化/ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.