木木木

Swift / Ruby on Railsなどの学習メモ。


ActiveRecordの中間テーブルにupdated_atカラムは要らない場合が多い

ActiveRecordマイグレーションファイルは、
自動で t.timestamps が追加され、created_at と updated_atカラムが追加されます。
中間テーブル自体がモデル同士の関連情報以外を持つ場合は別ですが、
モデル同士の関連情報 (user -- follow -- user とか) の場合は、
レコードがあるかないかの状態しかなく、更新というものが存在しないので、
updated_atは必要ありません。
そういった場合は、

t.timestamp :created_at

と記述することで、タイムスタンプをcreated_atのみとすることができます。
注意点は、タイムスタンプカラムが1つだけの時は、t.timestamp と単数形にすること。

という自分用メモ。

参考コード
class CreateFollow < ActiveRecord::Migration
  def change
    create_table :follows do |t|
      t.timestamp :created_at, null: false
    end
  end
end