Railsで一時的にupdated_atの更新をskip
Rails3.2で確認
昨日、 Railsでupdated_atのみ更新したい場合 というのを書きましたが、 今回は特定の場合のみupdated_atの更新をskipする方法です。
モデルのrecord_timestampsを切り替えることで一時的にskipすることが可能になります。
# サンプル
# Modelのtimestampの更新を無効に
Model.record_timestamps = false
# 何かしたい処理を記述
model = Model.find(1)
model.name = 'sample'
model.save # updated_atは更新されない
# Modelのtimestampの更新を有効に
Model.record_timestamps = true
こんな感じです。
必要な処理が終わった後に、
Model.record_timestamps = true
で再度自動更新を有効化するのをお忘れなく