その他
    ホーム 技術発信 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!!