0

我想通過從Twitter或Facebook收集的用戶名,當我的用戶得到認證和創建,但一個簡單的(description = user.username)似乎沒有做到這一點,這是我迄今爲止所做的;如何將用戶名從omniauth傳遞給條帶客戶創建

def self.create_from_omniauth(auth) 
create! do |user| 
    user.provider = auth["provider"] 
    user.uid = auth["uid"] 
    user.username = auth["info"]["nickname"] 
    #user.email = auth["info"]["email"] 
    user.save! 
    if user.save 
     Stripe::Customer.create(description = user.username) 
    end 
    user 
    end 
end 

無論我使用@ user.username還是current_user.username,我都會收到以下錯誤。

undefined method `each' for "xhtmlit":String 

回答

0

我完全做錯了,這就是爲什麼它爲我吐出了錯誤。實際的代碼可能不是乾淨的,但我目前正在嘗試弄清楚從髒版本開始到乾淨版本。以下是我迄今爲止的工作。

if user.save 
     Stripe::Customer.create(:email => user.username) 
end 
+0

您可能想要將其移出'if'塊。它會不必要地敲擊數據庫進行雙重保存,並且它沒有做任何事情 - 如果「保存!」失敗,它會引發異常,並且你永遠不會觸及你的塊。如果「保存!」成功,你的if總是會評估爲真。 – colinm

相關問題