0
我正在爲Devise進行Facebook身份驗證,我偶然發現了一個問題 - 何時會嘗試使用已經在系統中的Facebook電子郵件註冊某人,我收到一個錯誤(部分正確)。Rails - 如何避免在模型中創建記錄時出現驗證錯誤?
我需要將該用戶重定向回主頁,並在那裏打印出此問題,但目前我將此消息打印爲錯誤(在本地主機上)。
以下是我正在做的是(用戶模型):
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
if user = User.where(:provider => 'facebook', :uid => data.id).first
user
else # Create a user with a stub password.
user = User.create!(:first_name => data.first_name,
:last_name => data.last_name,
:email => data.email,
:password => Devise.friendly_token[0,20],
:provider => 'facebook',
:uid => data.id,
:terms_of_use => true)
end
return user if user
end
如何將用戶重定向哪裏會被打印出來的驗證消息的網頁上?
感謝
你有沒有聽說過first_or_create?這段代碼很糟糕。 –
我知道這太糟糕了。我想給他一個關於如何進行錯誤和重定向的想法,而不是重構。因爲這是他所問的。 – AnkitG
@MichaelSzyndel,增加了'first_or_create';) – AnkitG