当我创建一个新的ActiveRecord实例时,| ID | Name | Surname | BranchCode | CountryCode | PersonUnit
+-----+-------+---------+------------+--------------+----------
| 83 | Jeck | Payl | 100 | 087 | 196
| 65 | Alb | Payl | 170 | 983 | 325
时间戳会保存到数据库中。
答案 0 :(得分:5)
这是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
默认情况下,时间戳为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