我有一個使用設計,用戶模型,沒有範圍的Rails應用程序。 我也在應用程序中添加了activeadmin gem,Active Admin是用於在您的應用程序中添加管理控制檯的gem。它使用Devise登錄用戶併爲管理員創建單獨的admin_user模型。Ruby On Rails身份驗證與設計和(監獄)回調
我允許匿名,未登錄的用戶創建購物車,創建一個session[:cart_id]
。如果我有用戶登錄要像
Cart.find(session[:cart_id]).user = current_user
我正打算使用守望者回調wardens callbacks到impliment這與車的用戶,一些像這樣聯繫起來,:不過,我得到一個
Warden::Manager.after_set_user :scope => :user do |user, auth, opts|
Cart.find(session[:cart_id]).user = user
end
錯誤如果我這樣做:
<% unless user_signed_in? %>
拋出一個錯誤:admin_user user is not logged in
任何人有任何想法是怎麼回事?
我看過相關的問題,但沒有任何幫助:
How to access session from Warden/Devise after_authentication callback in Rails
Where should warden callbacks be placed in a rails app?
Active Admin與您的示例有什麼關係?我猜這就是問題所在,你不知道爲什麼admin_user會顯示出來? – Amala
我用一個用戶實現了ActiveAdmin,我不想單獨使用一個admin_user。隨着您的身份驗證集成,一個設計類。然後每個用戶都有角色。如果你對這個解決方案感興趣,我可以解釋一下。 – Amala