1

ActiveRecordの属性の新しい値を保存する方法は5つあります。残念ながら、私は1つの方法しか利用できず、それが最も効率的な方法かどうかはわかりません。

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

updateメソッドから始めましたが、なんらかの奇妙な理由でレビュー行が削除されました

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

何か案は?

4

3 に答える 3

4

あなたは使用する必要があります

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

ドキュメントを見ることができますか。

注:ActiveRecord::Base:updateRails3.2.8では非推奨になりました

于 2013-02-18T22:27:17.367 に答える
1

属性の新しい値を保存する最も効率的な方法は、次のようにすることです。

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

ActiveRecordはメソッドとともに値を自動的に保存するため、この後にsaveメソッドを呼び出す必要はありませんupdate_attribute

ここで、これは、オブジェクトに設定された検証に合格した場合にのみ変更が機能する場合にのみ機能することに注意してください。

詳細については、次のリンクを確認してください。

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

于 2013-02-18T22:12:32.383 に答える
0

そのはず

review.update_attributes(status: 'ok')

于 2013-02-18T22:36:50.777 に答える