当我创建一个新的ActiveRecord实例时,created_at
时间戳将保存到数据库中。
以下是ActiveRecord中_create_record
方法的实现:
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
Time.now.utc
计算),但是可以在配置config.active_record.default_timezone = :local
中更改(在这种情况下,它将使用Time.now
计算)config.active_record.default_timezone = :local
来更改它如果您想查看代码,请访问以下链接:https://github.com/rails/rails/blob/master/activerecord/lib/active_record/timestamp.rb