2011-02-11 187 views
1

使用heroku,我試圖更新記錄。Rails - 更新記錄?

這是我做過什麼:

@user = User.find(11) 
@user.email = '[email protected]' 
@user.save 
>> true 

但後來當我做User.find(11),電子郵件不更新?任何想法爲什麼?

+0

這是確切的代碼?因爲您沒有關閉電子郵件中的報價。 – acconrad 2011-02-11 03:03:40

回答

3

我會推薦在@user.save後嘗試@user.reload。上面嘗試@user.save!(閱讀 - 「@user dot save bang」)的建議也很好,因爲如果在保存@user時驗證失敗,它將引發錯誤。

希望有所幫助。

0

也嘗試@user.save!如果任何驗證出錯,將會出現錯誤。但是,如果@user.save給出了真實的,那麼我沒有看到它沒有保存到數據庫的任何原因。

0

如果你得到true那麼你不必擔心沒有被驗證的記錄。真的告訴你它確實得救了。但使用@user.save!(如上面提到的@rubyprince)是一個好習慣。這樣,將會引發無效的更新嘗試。

此外,你確定它沒有得到更新?如果你正在使用數據庫後端,我會直接去數據庫,而不是依賴於User.find()

你也可以嘗試做User.find(11).reload看看是否有效。你可以找到一些信息herereload。所以你可以嘗試這樣的...

user = User.find(11).reload 
puts user.email 

然後看看電子郵件是否改變。