datetimeカラムのデフォルトを現在時間にしたい
この前提のもと、migrationに
t.datetime :created_at, default: DateTime.now
と安直に書いてmigrationすると、migrationされた日がデフォルト値になってしまう。
datetimeみたいに動的な値は、migrationされた時にしか計算されないためだ、と。
Railsガイド>Active Record マイグレーション>3.5 カラム修飾子
設定方法
t.datetime :created_at, default: -> { 'NOW()' }
これでdatetimeのデフォルト値を設定できました!
参考
他の記述方法もありました!参考にさせていただきました。
Ruby on Railsのmigrationでdatetimeのデフォルト値をCURRENT_TIMESTAMPにする