我在我們的網站中使用rails 2.3.5和Authlogic,並且我通過重複嘗試保存的電子郵件的用戶的hoptoad出現數據庫錯誤。問題是,顯然我在模型上有validates_uniqueness_of :email
。問題validates_uniqueness_of
在我的測試在開發中,我得到了預期的驗證錯誤,並沒有保存用戶,但在生產中,我不斷收到DB層的錯誤。
我已經測試了區分大小寫的電子郵件,它也驗證了正確。
我檢查和階級並沒有attr_accessor或任何其他屬性重寫,我不認爲Authlogic會做它在一個錯誤的方式...
什麼能在生產上發生了什麼?有沒有軌道驗證不成功的情況?
是的,我知道當一個電子郵件已經存在黽不應該拋出錯誤。它應該簡單地驗證並返回到「此電子郵件已被使用」消息的形式。這種行爲幾乎在所有情況下都會發生,但在少數情況下,rails會驗證已存在的電子郵件,因此它會嘗試保存用戶,並且由於UNIQUE索引,數據庫會引發錯誤。我試圖重新創建它,但即使使用相同的數據,我也能得到正確的行爲而不是錯誤:/ – Draiken 2011-01-19 16:28:05