ホーム DoRuby ActiveRecordでupdated_atを更新せずにテーブルを更新させる

ActiveRecordでupdated_atを更新せずにテーブルを更新させる

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは。KBMJの本多です。

今回はテーブルの更新日付を変更することなくテーブルの中身を変更する方法を紹介します。やり方は以下の通り。

例:)変更するテーブル名が「tables」、Model名が「Table」の場合

table = Table.find(:first, (中略))
(tableの中身を修正)
table.record_timestamps = false ←※
table.save

一括で変更する場合は

tables = Table.find(:all, (中略))
tables.each do |table|
  (tableの中身を修正)
  table.record_timestamps = false ←※
  table.save
end

このように、データの保存前におまじないをかけるだけです。
バッチ等でテーブル内のデータを修正したいけど、更新日付を変えたくない時に使ってみてください。

GOOD RAILS!!

記事を共有

最近人気な記事