Rails 3: Einstellung der Zeitzone des aktuellen Nutzer-Zeitzone
Ich habe dies im Application-Controller:
before_filter :set_timezone
def set_timezone
Time.zone = current_user.time_zone
end
Aber ich bekomme immer den Fehler:
undefined method time_zone for #<User:0xa46e358>
und ich weiß einfach nicht warum...
Ich hoffe mir kann jemand helfen
- Warum denken Sie, dass dies funktionieren sollte? current_user.time_zone
- ryandaigle.com/articles/2008/1/25/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Max-the ryandaigle.com Artikel Sie erwähnten links zu dieses Dokument wo Sie Sie brauchen zu erstellen eine migration hinzufügen "time_zone" als Attribut für den Benutzer
(dies ist aus dem Artikel, in rails 2.x-syntax)
später
Deshalb Ihren .time_zone ist wieder ein method_missing-Sie haben nicht gespeichert, die time_zone auf den Benutzer noch.
Weiter auf Jesses Antwort, ich sollte hinzufügen, dass Sie im Allgemeinen vermeiden Sie das hinzufügen einer neuen Spalte in der db und erstellen Sie eine benutzerdefinierte Methode in user-Modell und machen Verwendung von cookie - des Benutzers abzurufen
Zeitzone:
im client-Seite (js):
im Application-Controller:
Dies ist nicht korrekt, denn die Zeit Versatz nicht konstant, Sie hängt von der Sommerzeit-Perioden.
Schienen erwartet, dass die standard-Zeit-offset beim Aufruf ActiveSupport::TimeZone[-min.Minuten].
ex: in Frankreich am Tag 09/03/2013 10:50:12 +02:00, javascript zurück -120 offset, wo ActiveSupport müssen -60 zu beheben Frankreich timezone.
Dann müssen Sie prüfen, ob dies ist ein Sommerzeit in JS dann, wenn dieses der Fall ist, müssen Sie subtrahieren Sie eine Stunde, um den offset, um den richtigen Wert verwendet, durch Schienen.