Tengo una aplicación en la que deseo permitir al usuario establecer zonas horarias. Cuando el usuario crea una entrada de recordatorio, la entrada se almacenará en db en UTC. Pero cuando abre la entrada del calendario en la aplicación, debería ver la entrada en su zona horaria seleccionada. Estoy usando Crónico, pero eso es inmaterial aquí.
En mi ApplicationController.rb
, que tienen la siguiente secuencia:Timezones en Rails
before_filter :set_user_time_zone
...
def set_user_time_zone
Time.zone = current_user.timezone if user_signed_in?
end
Después de esto, las entradas siguen almacenados en la UTC, pero con la diferencia de tiempo. Por ejemplo, configuré la zona horaria como - "Delhi" que es +530 desde UTC. Cuando quiero guardar la entrada del calendario para "Ene, 16 - 12:15 AM", la base de datos está llena con "2011-01-15 18:45:19 UTC", por lo que es 5:30 horas antes de la hora real que quiero ahorrar.
En la interfaz de usuario también sigo viendo esta entrada en lugar de la hora que se muestra en la zona horaria del usuario actual.
Quiero saber cuál es la forma correcta de manejar este tipo de características de zona horaria en los rieles.
no sé si este enlace va a ayudar, pero es buena-a-saber: http://stackoverflow.com/questions/4529387/does-anyone -know-how-to-apropiadamente-deal-with-user-timezones-in-rails-2-3 – Zabba