上方的代码中删除此部分
我有一个狂欢应用程序,可以与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