2010-05-31 26 views
5

Estoy luchando con el soporte de zona horaria en Rails 3 beta y me gustaría saber si es un error o si estoy haciendo algo mal. Él es el problema:Rails 3 Timezone error

 
> Time.zone = 'Madrid' # it is GMT+2 
=> "Madrid" 
> c = Comment.new 
=> #<Comment id: nil, title: "", pub_at: nil> 
> c.pub_at = Time.zone.parse('10:00:00') 
=> Mon, 31 May 2010 10:00:00 CEST +02:00 
> c.save 
> c 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
> c.reload 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
ruby-1.8.7-p249 > c.pub_at 
=> Mon, 31 May 2010 13:00:00 CEST +02:00 

Como se puede ver, el atributo pub_at se almacena correctamente en la base de datos, pero cuando se recupera añade 3 horas y sospecho que es porque está utilizando mi zona horaria de la máquina local que está en GMT-3.

La misma secuencia de comandos en los carriles 2.3.5 funciona perfectamente.

Cualquier toughts? ¿Debo reportar un boleto?

Respuesta

3

Si no recuerdo mal, todas las fechas se guardan en la base de datos como UTC.

¡Y los rieles y la consola no manejan las fechas de la misma manera!

lo que debe tratar de probarlo en su aplicación mediante el establecimiento de la zona horaria en su application.rb

config.local_zone = 'Madrid' 

y luego imprimir el valor! Deberías ver la hora correcta.

Espero que esta ayuda