2011-09-07 124 views
3

因此,要獲得一個記錄在用戶模式,我跑無法保存記錄在控制檯

@user = User.find(1) 

然後更改屬性:

@user.active = false 

然後,它返回false

當我跑

@user.save 

我得到

(0.2ms) BEGIN 
(0.3ms) SELECT 1 FROM `users` WHERE (LOWER(`users`.`username`) = LOWER('sean') AND `users`.`id` != 1) LIMIT 1 
(0.3ms) SELECT 1 FROM `users` WHERE (LOWER(`users`.`email`) = LOWER('[email protected]') AND `users`.`id` != 1) LIMIT 1 
(0.6ms) ROLLBACK 
=> false 
+1

嘗試'@ user.save'然後檢查'@ user.errors',看看是否有任何驗證錯誤保存。 –

回答

10

試試這個,看看錯誤被拋出

@user.save! 

如果您@user.save將返回false,那麼就意味着有一個錯誤,事情是防止它被保存。您可以在此處使用@user.errors來查看錯誤是什麼。

+0

這是一個密碼長度驗證錯誤即將到來。我改變它包括:on =>:create,:update – chief

+0

實際上,如果我有:on =>:update,它將不起作用。控制檯要求輸入最小長度的密碼。任何建議? – chief

+1

看來您在用戶已經在數據庫中之後添加了對密碼的驗證。您有兩個選項1)刪除密碼長度驗證或2)更新用戶密碼以符合驗證。我會和#2一起去。只要執行'@ user.password ='somevalidpassword''然後嘗試保存。 – Dty