hello-world
webエンジニアのメモ。とりあえずやってみる。

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

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

参考


Related #Rails

[rails]ELB使用時にヘルスチェック用のアクションを作成する

ELBにrailsアプリをぶら下げる場合、railsアプリが落ちたらELBから外れてもらいたいです。

[rails]carrierwaveで保存した画像のurlを取得する

carrierwave 0.10.0 で確認 imageカラムにcarrierwaveで保存した画像を保存している場合、デフォルトのままだとだとurlメソッドを実行してもpublic以下のパスのみで http://~ が設定されていません。