簡易な記録テーブルなどで、時刻などを更新をしたいときの豆知識
環境
$ rails -v Rails 7.1.2
やり方
該当レコードで .touch
をすると自動的に保存がされる
例
book.updated_at
# Thu, 01 Feb 2024 14:37:18.696490000 UTC +00:00
このようなレコードに .touch
をすると現在時刻が入る。
book.touch # true book.updated_at # Thu, 01 Feb 2024 14:37:37.490409000 UTC +00:00
応用編
任意の時間を設定することもできる。
book.touch(time: Time.new(2015, 2, 16, 0, 0, 0)) book.updated_at # Sun, 01 Feb 2015 00:00:00.000000000 UTC +00:00
注意点
GitHubの該当コード部分 にも書いてあるが、特定のバリデーションは省略され、特定のコールバックしか動かないので注意
Please note that no validation is performed and only the +after_touch, +after_commit and +after_rollback callbacks are executed.