在Rails中保存到数据库时,时间属性会更改

时间:2014-07-26 04:30:43

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

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

1 个答案:

答案 0 :(得分:3)

听起来您可能正在保存time对象而不是date对象。

有效记录可让您使用timedatedatetime个对象。

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


  

我可以做些什么来确保我的时间得到正确保存?

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

object.datetime

。 。 。而不是:

object.time

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