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にする