2017-01-01 7 views
0

나는 Facebook 및 기타 소셜 네트워크를 사용하여 로그인 할 수있는 Spree 응용 프로그램을 가지고 있지만 내 문제는 사용자를 로그인 주문과 연결할 수 없다는 것입니다. associate_user를 시도했습니다! 다음 샘플처럼 카트는 항상 비어 있습니다.Spree 연결 사용자를 로그인 할 때

여기

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

위의 코드에서이 부분을 제거해야? 사용자가 물건을 쇼핑하고 바구니에 물건을 추가하면 결제 할 때 "facebook으로 로그인"을 선택하고 현재 주문을 그들과 연관 짓기를 원합니 까? – mroach

+0

그래, 그게 다야. –

답변

0
나는 그것이 Spree_auth_devise 버그이고 그것이 밖으로 곧 것이다 버전 3.2.0.beta에서 해결 된 것으로 파악

, 문제가 Wardan.rb에 있었다를 omniauthcallback에 내 코드입니다

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