mirror of
https://github.com/jbranchaud/til
synced 2026-01-02 22:58:01 +00:00
904 B
904 B
Set A Timestamp Field To The Current Time
To set a timestamp field to the current time, you could reach for the #update
method like you would when modifying any other field.
MagicLink
.find_by(token: some_token)
.update(used_at: Time.zone.now)
This works, but it's more verbose than is necessary and requires that you construct the right timestamp for now (time zones and all).
Rails has a more concise and idomatic way of doing this:
#touch.
MagicLink
.find_by(token: some_token)
.touch(:used_at)
Updating a timestamp to the current time is a common action in web
applications, so Rails offers the #touch method as a shorthand for doing it.
This will set the given field, in this case :used_at, to the current time.
This will also set the updated_at/on field.