在rails 4应用程序中,时间默认为“2000-01-01 21:14:00 UTC”

时间:2014-07-25 21:18:05

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

我是rails和处理应用程序的新手。 在我的表单上,我希望实现的默认时间(EST时间)不正确,虽然有一个下拉框供用户选择正确的日期和时间,但它会恢复为“2000-01-01” 21:14:00 UTC“。

有什么建议可以避免这种情况吗?

目前我的jobs_controller.rb看起来像这样:

  def new
@job = Job.new(:date => Time.now, :date_of_loss => Time.now, :sign_date => Time.now, :time_called_in => Time.now)
end

1 个答案:

答案 0 :(得分:4)

您可能已在迁移中将这些列创建为:time列。如果要保存时间和日期,则需要datetime列。

令人困惑的是,即使ruby Time用于表示某个时间点(从这个角度来看,它与DateTime类非常相似(但在实现方面却非常不同))在sql中TIME列是不同的,意味着一个非实体的时间,没有附加日期(例如下午4点的概念)。

Ruby没有一天内建的类,因此rails选择代表那些带有Time实例的人。由于日期部分被忽略,因此它被设置为任意日期,恰好是2000年1月1日