我是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
答案 0 :(得分:4)
您可能已在迁移中将这些列创建为:time
列。如果要保存时间和日期,则需要datetime列。
令人困惑的是,即使ruby Time
用于表示某个时间点(从这个角度来看,它与DateTime
类非常相似(但在实现方面却非常不同))在sql中TIME
列是不同的,意味着一个非实体的时间,没有附加日期(例如下午4点的概念)。
Ruby没有一天内建的类,因此rails选择代表那些带有Time实例的人。由于日期部分被忽略,因此它被设置为任意日期,恰好是2000年1月1日