2016-03-01 69 views
0

什麼會導致我無法使用Rails Admin編輯User記錄?使用Rails Admin無法編輯用戶記錄。電子郵件已被採用

我可以編輯所有其他記錄很好,但是當我嘗試編輯這個特殊的記錄,我得到這個錯誤:

User failed to be updated 
- Email has already been taken 

我使用設計的用戶註冊,這個模型驗證一起:

validates :email,  uniqueness: { case_sensitive: false } 

我轉到Rails Admin中的用戶編輯表單,更改其他字段並提交上面的錯誤。這真的很奇怪,我試圖看看是否有任何我可能錯過的想法。

爲什麼當我更新記錄時會觸發此驗證?只有一個具有特定電子郵件值的記錄,這就是我正在編輯的那個記錄。

+1

當您執行'save'或'create'或'update_attributes'時,驗證總是觸發...您確定您沒有使用同一電子郵件獲得另一條記錄,但具有不同的大小寫嗎?是否有可能電子郵件驗證是在項目後面添加的,或者可能是用'validate:false'保存的? – SteveTurczyn

回答

0

嘗試限制您的驗證以創建並查看是否有所作爲。

validates :email, uniqueness: { case_sensitive: false }, on: :create 
0

驗證電子郵件的驗證碼是正確的。

你得到了默認的驗證消息「電子郵件已經採取」,因爲你有相同電子郵件在用戶表

它是種子文件的一部分,因此您不記得保存它。 或已被其他用戶保存。

請嘗試尋找它,如:

User.find_by(:email => "test_mail_here") 
# so you can check duplication ef email. 

代碼的默認驗證是:創建&更新

您可以使用:

validates :email, uniqueness: { case_sensitive: false }, on: :create 

但是,我認爲要好得多不是使用它。

對我來說最好的解決方案是更新或刪除重複的電子郵件。因此,您可以再次使用的全部功能驗證方法。

相關問題