2017-01-12 3 views
3

Ich habe ein unterschiedliches Verhalten zwischen Rails 4 und 5; speziell die Klasse created_at und updated_at Werte eines Modells in Code. In Rails 4 zeigt es, dass sie ActiveSupport::TimeWithZone sind, aber Rails 5 hat sie nur als Date. Die Werte werden (natürlich) auch mit puts unterschiedlich ausgedruckt.Rails 5 - created_at und updated_at Klassen

Ich habe den Datenbanktyp dieser Werte nicht geändert. Ich verwende Oracle mit dem activerecord-oracle_enhanced-adapter gem (v1.7.0), und die Spalten wurden "normal" in Migrationen mit t.timestamps ohne spezielle Konfiguration erstellt.

» 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 

Haben sie das wirklich geändert, oder mache ich etwas falsch? Was vermisse ich?

+0

Welche Datenbank verwenden Sie und was sagt sie über den Datentyp der created_at-Spalte? – Maltiriel

+0

@Maltiriel: Aktualisierte Frage mit db info. – istrasci

Antwort

Verwandte Themen