Mam aplikację, w której chcę zezwolić użytkownikowi na ustawianie stref czasowych. Gdy użytkownik utworzy wpis przypomnienia, wpis zostanie zapisany w db w UTC. Ale kiedy otwiera pozycję kalendarza w aplikacji, powinien zobaczyć wpis w wybranej strefie czasowej. Używam Chronicznego, ale to jest tutaj bez znaczenia.
W moim ApplicationController.rb
, mam następujący ciąg:Strefy czasowe w szynach
before_filter :set_user_time_zone
...
def set_user_time_zone
Time.zone = current_user.timezone if user_signed_in?
end
po tym, wpisy są nadal zapisane w UTC, ale z różnicą czasu. Na przykład ustawiam strefę czasową jako - "Delhi", która wynosi +530 od czasu UTC. Kiedy chcę zapisać pozycję kalendarza dla "Jan, 16 - 12:15" - baza danych jest wypełniona "2011-01-15 18:45:19 UTC" - czyli 5:30 godziny przed właściwym czasem zapisać.
W interfejsie użytkownika również widzę ten wpis zamiast czasu wyświetlanego w strefie czasowej bieżącego użytkownika.
Chcę wiedzieć, jaki powinien być właściwy sposób obsługi tego rodzaju funkcji strefy czasowej w szynach.
ja nie wiem, czy ten link pomoże, ale jest to dobry-do-wiedzieć: http://stackoverflow.com/questions/4529387/does-anyone -tnow-jak-odpowiednio-radzić-z-użytkownika-strefami czasowymi-w-torach-2-3 – Zabba