2017-01-01 7 views
0

У меня есть приложение Spree с возможностью входа в систему с Facebook и другими социальными сетями, но моя проблема в том, что я не могу связать пользователя с заказами в логине, я пробовал associate_user! как мой следующий образец, но тележка всегда пуста.Spree Ассоциированный пользователь с заказом с именем пользователя

вот мой код в omniauthcallback

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

Что здесь рабочий процесс? Пользователь магазина, добавляет вещи в свою корзину, а затем в кассе они выбирают «login with facebook», и вы хотите связать с ними текущий заказ? – mroach

+0

Yup, вот и все. –

ответ

0

Я понял, что это ошибка в 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

 Смежные вопросы

  • Нет связанных вопросов^_^