既存のテーブルにタイムスタンプを追加する
概要
既存のテーブルにタイムスタンプ (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 はこれらの列をタイムスタンプ列として扱い、通常どおり値を更新します。