Techioz Blog

既存のテーブルにタイムスタンプを追加する

概要

既存のテーブルにタイムスタンプ (created_at および updated_at) を追加する必要があります。次のコードを試しましたが、うまくいきませんでした。

class AddTimestampsToUser < ActiveRecord::Migration
    def change_table
        add_timestamps(:users)
    end
end

解決策

タイムスタンプ ヘルパーは、create_table ブロックでのみ使用できます。これらの列を追加するには、列の種類を手動で指定します。

class AddTimestampsToUser < ActiveRecord::Migration
  def change_table
    add_column :users, :created_at, :datetime, null: false
    add_column :users, :updated_at, :datetime, null: false
  end
end

これには、上で指定した add_timestamps メソッドと同じ簡潔な構文はありませんが、Rails はこれらの列をタイムスタンプ列として扱い、通常どおり値を更新します。