Rails migrationでdefaultに作成時の現在時刻を入れる
default: -> { "now()" }
という指定ができる。
create_table "hoge" do |t| t.datetime "hoge_created_at", default: -> { "now()" }, null: false end
hoge = Hoge.create hoge.hoge_created_at => nil # DBで時間を入れるため作成直後はnilになってしまう hoge.reload.hoge_created_at => 2020-07-29 10:33:25 +0900 # reloadすればちゃんと入っている
reloadしないといけないので使用方法には注意が必要
before_create
などでデフォルト値設定したほうがRails側的には使いやすいかも