Railsで一時的にupdated_atの更新をskip


[まとめ] 現在開催中のKindleセール情報はこちら

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

で再度自動更新を有効化するのをお忘れなく

参考

[まとめ] 現在開催中のKindleセール情報はこちら