Help us understand the problem. What is going on with this article?

datetimeカラムのデフォルト値について

datetimeカラムのデフォルトを現在時間にしたい

この前提のもと、migrationに

t.datetime :created_at, default: DateTime.now

と安直に書いてmigrationすると、migrationされた日がデフォルト値になってしまう。
datetimeみたいに動的な値は、migrationされた時にしか計算されないためだ、と。
Railsガイド>Active Record マイグレーション>3.5 カラム修飾子

設定方法

こちらのPRで上がってました

t.datetime :created_at, default: -> { 'NOW()' }

これでdatetimeのデフォルト値を設定できました!

参考

他の記述方法もありました!参考にさせていただきました。
Ruby on Railsのmigrationでdatetimeのデフォルト値をCURRENT_TIMESTAMPにする

Dai_Yk
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away