Max - der ryandaigle.com Artikel Sie haben Links zu dieser Beschreibung erwähnt, in der Sie sich befinden Sie müssen eine Migration erstellen, um dem Benutzer "time_zone" als Attribut hinzuzufügen
(aus dem Artikel, in der 2.x-Syntax)
%Vor%später
%Vor%Aus diesem Grund gibt Ihre .time_zone ein method_missing zurück - Sie haben die time_zone noch nicht auf dem Benutzer gespeichert.
Neben Jesses Antwort sollte ich hinzufügen, dass Sie im Allgemeinen vermeiden können, eine neue Spalte in db hinzuzufügen und einfach eine benutzerdefinierte Methode im Benutzermodell zu erstellen und Cookie verwenden , um den Benutzer zu erhalten Zeitzone:
in der Clientseite (js):
%Vor%
im Anwendungs-Controller:
Dies ist nicht korrekt, da der Zeitversatz nicht konstant ist, sondern von den Sommerzeitperioden abhängt. Rails erwartet die Standardzeitverschiebung beim Aufruf von ActiveSupport :: TimeZone [-min.minutes] .
ex: in Frankreich am Datum 09/03/2013 10:50:12 +02: 00, wird Ihr Javascript -120 als Offset zurückgeben, wo ActiveSupport -60 benötigt, um die französische Zeitzone aufzulösen.
Dann müssen Sie überprüfen, ob dies eine Sommerzeit in JS ist. Wenn dies der Fall ist, müssen Sie dies tun subtrahieren Sie den Offset um eine Stunde, um den richtigen von Rails verwendeten Wert zu erhalten.
Tags und Links ruby-on-rails timezone