带有登录订单的Spree Associate用户



我有一个狂欢应用程序,可以与Facebook和其他社交网络登录,但我的问题是我无法将用户与登录订单相关联,我尝试了Asseciate_user!就像我以下样本一样,但购物车总是空的。

这是我在OmniautCallback中的代码

if current_order
    current_user = spree_current_user || @user
    current_order.associate_user!(current_user)
    session[:guest_token] = nil
end

我发现这是Spree_auth_devise中的一个错误,并且已在即将发布的版本3.2.0.beta中解决,问题是在wardan.rb

中。
Warden::Manager.after_set_user except: :fetch do |user, auth, opts|
  if auth.cookies.signed[:guest_token].present?
    if user.is_a?(Spree::User)
      Spree::Order.where(email: user.email, guest_token: auth.cookies.signed[:guest_token], user_id: nil).each do |order|
        order.associate_user!(user)
      end
    end
  end
end

您需要从email: user.email

上方的代码中删除此部分

最新更新