我正在使用omniauth讓用戶使用Ruby on Rails應用程序中的Facebook和Twitter帳戶登錄。由於Twitter request.env["omniauth.auth"]
沒有給我帳戶的電子郵件,我構建它(數據庫中的電子郵件不能爲NULL)。我有這段代碼:omitiuth和twitter SQLite錯誤
if params[:provider] == 'facebook'
email = omniauth[:info]["email"]
elsif params[:provider] == 'twitter'
email = omniauth[:info]["name"] + '@example.com'
end
user = User.new(:email => email)
如果我使用Facebook帳戶登錄,它的工作原理非常完美。但是,如果我嘗試使用Twitter帳戶的applicacion給了我這個錯誤:
SQLite3::ConstraintException: users.email may not be NULL [SQL query]
我檢查郵件是否爲NULL幾次情況下,它被嚴重建造或東西,但不爲NULL。已安裝omniauth-twitter
和omniauth-facebook
寶石。 有誰知道爲什麼? 讓我知道你是否需要更多的代碼或信息。
我試過了_Ryan Bate的方法_但我得到了同樣的結果。我想我在某個地方錯過了一些東西,但我看不到它。我會再試一次,我會告訴你我的結果。 – itziki
我終於成功地使用Twitter帳戶登錄,並試圖重定向,以便用戶鍵入他的電子郵件。我更喜歡那個解決方案,而不是另一個:)謝謝你們兩個 – itziki