2013-02-18 30 views
1

在ActiveRecord中,有5種方式爲屬性保存新值。不幸的是我只能去工作的一種方式,我不知道這是最有效的方法:在活動記錄中爲一行保存一個屬性

review = Review.find(id) 
review.status = 'ok' 
review.save! 

我開始用更新的方法,但對於刪除了我的複習排一些奇怪的原因

review = Review.update(id, :status => 'ok) 
review.save! 

任何想法?

回答

1

最有效的方式來保存新值的屬性是簡單地做:

Review.update_attribute(id, :status => 'ok') 

無需調用此之後,保存方法,因爲ActiveRecord的自動保存與update_attribute方法的價值。

現在請記住,只有當更改通過設置在對象上的驗證時才能起作用。

看看這個鏈接獲取更多信息:

http://apidock.com/rails/ActiveRecord/Base/update/class

+0

更新已被棄用。請檢查我的答案是否有更新的版本。 – 2013-02-18 22:24:35

4

您應該使用

review = Review.find_by_id(id) 
review.update_column(:status, 'ok') 

有你可以看到the docs

注:ActiveRecord::Base:update已經對Rails 3.2.8

0

被棄用,這應該是

review.update_attributes(status: 'ok')

相關問題