gpt4 book ai didi

ruby-on-rails - 是否有任何保证 created_at 和 updated_at 在第一次保存后立即相等?

转载 作者:行者123 更新时间:2023-12-04 02:21:16 26 4
gpt4 key购买 nike

我在探索 Rails' source但我找不到确切的时间 created_atupdated_at已设置,所以我无法自己回答这个问题。

最佳答案

来自 rails 源 here :

时间戳.rb

module ActiveRecord
# Active Record automatically timestamps create and update operations if the table has fields
# named created_at/created_on or updated_at/updated_on.
#
# Timestamping can be turned off by setting
# <tt>ActiveRecord::Base.record_timestamps = false</tt>
#
# Timestamps are in the local timezone by default but you can use UTC by setting
# <tt>ActiveRecord::Base.default_timezone = :utc</tt>
module Timestamp
def self.included(base) #:nodoc:
base.alias_method_chain :create, :timestamps
base.alias_method_chain :update, :timestamps

base.class_inheritable_accessor :record_timestamps, :instance_writer => false
base.record_timestamps = true
end

private
def create_with_timestamps #:nodoc:
if record_timestamps
t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
write_attribute('created_at', t) if respond_to?(:created_at) && created_at.nil?
write_attribute('created_on', t) if respond_to?(:created_on) && created_on.nil?

write_attribute('updated_at', t) if respond_to?(:updated_at) && updated_at.nil?
write_attribute('updated_on', t) if respond_to?(:updated_on) && updated_on.nil?
end
create_without_timestamps
end

def update_with_timestamps(*args) #:nodoc:
if record_timestamps && (!partial_updates? || changed?)
t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
write_attribute('updated_at', t) if respond_to?(:updated_at)
write_attribute('updated_on', t) if respond_to?(:updated_on)
end
update_without_timestamps(*args)
end
end
end

关于ruby-on-rails - 是否有任何保证 created_at 和 updated_at 在第一次保存后立即相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com