Вот реализация метода _create_record
из ActiveRecord:
def _create_record
if record_timestamps
current_time = current_time_from_proper_timezone
all_timestamp_attributes_in_model.each do |column|
if !attribute_present?(column)
_write_attribute(column, current_time)
end
end
end
super
end
А вот реализация метода current_time_from_proper_timezone
:
def current_time_from_proper_timezone
default_timezone == :utc ? Time.now.utc : Time.now
end
В качестве временной отметки используется UTC по умолчанию (рассчитывается с использованием Time.now.utc
), однако ее можно изменить в вашей конфигурации config.active_record.default_timezone = :local
(В этом случае она будет рассчитываться с использованием Time.now
)
Время зависит от вашего сервера
По умолчанию это UTC, но вы можете изменить его, установив config.active_record.default_timezone = :local
Если вы хотите взглянуть на код, вот ссылка: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/timestamp.rb