gpt4 book ai didi

ruby-on-rails - ruby 的 Timestamp 类是否等同于 PostgreSQL 的时间戳?

转载 作者:行者123 更新时间:2023-11-29 13:33:49 24 4
gpt4 key购买 nike

如果我制作一个模型并创建一个像“name”这样的字段以及一个Timestamp,它是否等同于通过如下查询手动创建的时间戳:

CREATE TABLE whatever (
name varchar(25)
created timestamp NULL DEFAULT CURRENT_TIMESTAMP
)

换句话说,如果我正在处理一个具有手动预创建时间戳的数据库,我该如何创建一个模型来匹配预先存在的记录?

我想这很重要,这样我就可以在不影响我的情况下进行 ActiveRecord 查询。

最佳答案

ActiveRecord 将理解架构的 timestamp 部分,因此您应该从数据库中获取 ActiveSupport::TimeWithZone 就像您使用任何其他 时间戳列。但是,AR 无法理解 default current_timestamp,因此它会将您的 created 列设置为 NULL(或 nil Ruby land) 和 default current_timestamp 永远不会被触发;我通常用 after_initialize 来解决这个问题钩子(Hook):

after_initialize :set_defaults, :if => :new_record?
#...
def set_defaults
self.created = Time.now
end

关于ruby-on-rails - ruby 的 Timestamp 类是否等同于 PostgreSQL 的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17892961/

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