gpt4 book ai didi

ruby-on-rails - 我可以告诉 activerecord 在访问时不要将 "datetime"数据转换为对象吗?

转载 作者:行者123 更新时间:2023-12-04 03:44:18 25 4
gpt4 key购买 nike

我有一些代码可以简单地访问日期时间字段,因此当我阅读它时,activerecord 会自动将其转换为时间对象:

@some_appointment.some_time

问题是有时“some_time”日期时间列有错误的数据。 “0209-12-20”而不是“2009-12-20”。这导致 Ruby 在访问时抛出“年份太大而无法编码”错误,我似乎无法捕捉到它,因为该错误不是异常。鉴于我的数据库中有一些无效数据,我想尝试通过读取日期时间字符串并使用 Time.parse 来尝试自己制作时间对象,以便在无法解析时间时捕获异常。我怎样才能做到这一点?有没有更好的办法?

最佳答案

你可以试试 attribute_for_inspect ,如:

SomeModel.find(:first).attribute_for_inspect 'some_time'
#=> ""2009-02-23 23:15:24""

您也可以考虑只编写一个独立的脚本,该脚本不使用 activerecord 遍历数据库中的数据以对其进行规范化或其他操作。这可能比将不良数据的特殊情况编码到您的应用程序中要快。

关于ruby-on-rails - 我可以告诉 activerecord 在访问时不要将 "datetime"数据转换为对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003285/

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