Ho un'applicazione in cui desidero consentire all'utente di impostare i fusi orari. Quando l'utente crea una voce di promemoria, la voce verrà archiviata in db in UTC. Ma quando apre la voce del calendario nell'app, dovrebbe vedere la voce nel suo fuso orario selezionato. Sto usando Chronic ma qui è irrilevante.
Nel mio ApplicationController.rb
, ho la seguente stringa:Fusi orari in Rails
before_filter :set_user_time_zone
...
def set_user_time_zone
Time.zone = current_user.timezone if user_signed_in?
end
Dopo questo, le voci sono ancora salvati in UTC, ma con la differenza di tempo. Ad esempio, ho impostato il fuso orario come - "Delhi" che è +530 da UTC. Quando voglio salvare la voce del calendario per "Gen 16 - 12:15" - il database è popolato con "2011-01-15 18:45:19 UTC" - quindi le 5:30 ore prima dell'orario in cui desidero salvare.
Nell'interfaccia utente continuo a visualizzare questa voce anziché l'ora visualizzata nel fuso orario dell'utente corrente.
Voglio sapere quale dovrebbe essere il modo corretto per gestire questo tipo di funzionalità del fuso orario nei binari.
non so se questo link vi aiuterà, ma è bene di sapere: http://stackoverflow.com/questions/4529387/does-anyone -know-how-to-to-appropriatamente-deal-with-user-timezones-in-rails-2-3 – Zabba