ruby-on-rails - 在 Rails 中保存到数据库时,时间属性会发生更改

标签 ruby-on-rails ruby activerecord ruby-on-rails-4

我有一个模型,称为事件,具有时间属性。我将其设置为 Time.now,并在保存之前记录对象上的时间,如预期的那样,它比当前时间晚一两秒。但是,一旦保存该对象,然后在数据库中找到该对象,时间就会不同,日期部分是 2000 年 1 月 1 日。这是什么原因造成的?我该怎么做才能确保正确保存我的时间?编辑:列类型是时间,数据库是SQLite。

最佳答案

听起来您可能正在保存时间对象而不是日期对象。

事件记录允许您使用时间日期日期时间对象。

但是,如果您使用 timedate 对象,它们仍然是一种(解释它的糟糕方式,请参阅有关更多详细信息,请参阅下面的链接响应)完整的 datetime 对象。当您阅读它们时,日期将出现在 time 对象上(通常为 2000 年 1 月 1 日)。


What can I do to make sure my times are saved correctly?

如果保存/读取完整的日期时间对此字段很重要,您可能需要考虑更改表示要使用的模型的迁移:

object.datetime

。 。 。而不是:

object.time

有关更多详细信息,请参阅此回复:https://stackoverflow.com/a/3929047/1026898

关于ruby-on-rails - 在 Rails 中保存到数据库时,时间属性会发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967542/

相关文章:

javascript - 如何使用 ruby​​ on Rails 设置 jstree

ruby - 如何在 Chef 中使用特殊字符?

ruby-on-rails - rails 序列化数组验证

ruby-on-rails - Rails 事件记录验证 - 我应该验证非用户生成的数据吗

ruby-on-rails - RoR Michael Hartl 教程(第三)- 安装 sqlite3 时出错,Bundler 无法继续

html - 如何在rails4中的f.submit中给出图标类

ruby-on-rails - 如果日期等于今天或将来的日期,则从 postgres 呈现事件

ruby - 如何在 ruby​​ 的交互模式下查看/保存/加载工作空间

ruby - therubyracer - Gem::Ext::BuildError: 错误:无法构建 gem native 扩展

php - 代码点火器事件记录不适用于 where 子句中的日期