在ActiveRecord中,有5種方式爲屬性保存新值。不幸的是我只能去工作的一種方式,我不知道這是最有效的方法:在活動記錄中爲一行保存一個屬性
review = Review.find(id)
review.status = 'ok'
review.save!
我開始用更新的方法,但對於刪除了我的複習排一些奇怪的原因
review = Review.update(id, :status => 'ok)
review.save!
任何想法?
在ActiveRecord中,有5種方式爲屬性保存新值。不幸的是我只能去工作的一種方式,我不知道這是最有效的方法:在活動記錄中爲一行保存一個屬性
review = Review.find(id)
review.status = 'ok'
review.save!
我開始用更新的方法,但對於刪除了我的複習排一些奇怪的原因
review = Review.update(id, :status => 'ok)
review.save!
任何想法?
最有效的方式來保存新值的屬性是簡單地做:
Review.update_attribute(id, :status => 'ok')
無需調用此之後,保存方法,因爲ActiveRecord的自動保存與update_attribute
方法的價值。
現在請記住,只有當更改通過設置在對象上的驗證時才能起作用。
看看這個鏈接獲取更多信息:
您應該使用
review = Review.find_by_id(id)
review.update_column(:status, 'ok')
有你可以看到the docs。
注:ActiveRecord::Base:update
已經對Rails 3.2.8
被棄用,這應該是
review.update_attributes(status: 'ok')
更新已被棄用。請檢查我的答案是否有更新的版本。 – 2013-02-18 22:24:35