我有一个使用 Devise 的 Rails 应用程序,带有用户模型,没有范围。我还在应用程序中添加了 activeadmin gem,Active Admin 是用于在您的应用程序中添加管理仪表板的 gem。它使用 Devise 来登录用户并为管理员创建一个单独的 admin_user 模型。
我允许匿名、未登录的用户创建购物车,创建一个session[:cart_id]
. 如果用户登录我想将用户与购物车相关联,例如
Cart.find(session[:cart_id]).user = current_user
我打算使用 Wardens callbacks wardens callbacks来暗示这一点,就像这样:
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
有人知道发生了什么吗?
我看过相关的问题,但没有帮助: