我在 Rails 4 和 5 之间遇到了不同的行为;具体来说,代码中模型的 created_at
和 updated_at
值的类。在 Rails 4 中,它显示它们是 ActiveSupport::TimeWithZone
,但 Rails 5 只是将它们作为 Date
。这些值也(显然)使用 puts
以不同的方式打印出来。
我没有更改这些值的数据库类型。我将 Oracle 与 activerecord-oracle_enhanced-adapter gem (v1.7.0) 一起使用,并且这些列是在使用 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
他们真的改变了吗,还是我做错了什么?我错过了什么?
最佳答案
我在 activerecord-oracle_enhanced-adapter 中错过了这个文档,但有明确的Rails 4.2 to 5 upgrade instructions我需要申请。
关于oracle - Rails 5 - created_at 和 updated_at 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603279/