Rails 5 - created_at 和 updated_at 类

3
我在Rails 4和5中遇到了不同的行为,具体来说,在代码中模型的created_atupdated_at值的类别方面存在差异。在Rails 4中,它显示它们是ActiveSupport::TimeWithZone,但在Rails 5中它们只是一个Date。这些值也(显然)使用puts打印出不同。
我没有改变这些值的数据库类型。我正在使用带有activerecord-oracle_enhanced-adapter gem(v1.7.0)的Oracle,列是在迁移中“正常”创建的,即使用t.timestamps而没有进行特殊配置。
» bundle exec rails c
Running via Spring preloader in process 69059
Loading development environment (Rails 4.2.7.1)
[1] (pry) main: 0> Rails.version
=> "4.2.7.1"
[2] (pry) main: 0> Document.first.created_at.class
[ SQL Omitted ]
=> ActiveSupport::TimeWithZone ←←←←←←←←←←←← HERE
[3] (pry) main: 0> puts Document.first.updated_at
[ SQL Omitted ]
2016-09-08 17:05:18 -0600 ←←←←←←←←←←←←←←←←← HERE
=> nil
[4] (pry) main: 0> !!!

» git flow feature checkout rails-5
Switched to branch 'feature/rails-5'

» bundle exec rails c
Running via Spring preloader in process 69533
Loading development environment (Rails 5.0.1)
[1] (pry) main: 0> Rails.version
=> "5.0.1"
[2] (pry) main: 0> Document.first.created_at.class
[ SQL Omitted ]
=> Date ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←← HERE
[3] (pry) main: 0> puts Document.first.updated_at
[ SQL Omitted ]
2016-09-08 ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←← HERE
=> nil

他们真的更改了这个吗,还是我做错了什么?我漏掉了什么?


你使用的是哪个数据库?它对创建时间列(created_at)的数据类型有何说明? - Maltiriel
@Maltiriel:更新了带有数据库信息的问题。 - istrasci
1个回答

4

1
在看到你的问题之前,我也没有阅读文档。谢谢! - chester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接