2012-02-03 35 views
0

我已經添加了新的領域對我的色器件的用戶,但是,現在,我不能更新學生記錄,但我得到的消息:Rails 3,爲什麼模型更新默默地失敗?如何調試數據庫?

您已成功更新您的帳戶。

但是,DB從不更新!

新的領域有attr_accessibleattr_accessor

是因爲沒有在新領域的一個外鍵?我添加了國家/地區ID將用戶與他的國家相關聯,這是不更新的原因嗎?

如何調試發生的數據庫錯誤?我試圖用在色器件功能update_attributes!update_with_password,但是,沒有運氣,沒有錯誤,只是:You updated your account successfully.

我注意到,有一個在服務器開發日誌發行不SQLite的UPDATE命令,爲什麼呢?

請幫忙嗎?

+0

檢查數據庫中是否有新字段?他們可以通過導軌控制檯訪問嗎 – 2012-02-03 08:12:26

+0

這些字段存在於我的數據庫中,只要出現錯誤,我該如何調試它?怎麼沒有顯示錯誤? 另外,如何檢查他們是否可以從rails控制檯訪問? – simo 2012-02-03 08:48:33

+0

嘗試通過腳本/控制檯運行相同的更新,即'User.first.update_attributes!(:some_attribute =>'some value')'。觀察輸出和SQL更新是否生成。也可以嘗試通過直接分配值並調用save來更新用戶對象! – jake 2012-02-03 11:06:04

回答

1

我找到了解決方案,我不應該使用attr_accessor作爲它的那些不直接存儲在數據庫中的屬性。

我希望這對一些人有幫助。

0

嘗試通過向UserController上的更新操作添加after_filter引發異常或記錄。嘗試覆蓋控制器操作(並調用超級),如果您沒有該代碼的鉤子。

+0

謝謝傑克,我解決了這個問題,這是我的錯誤:) – simo 2012-02-03 11:34:10

相關問題