Ich verwende tsjzt: Ссылка auf der Client-Seite, um die aktuelle Benutzer-Zeitzone abzurufen, die ich in meinem Benutzerobjekt gespeichert habe .
Das funktioniert gut und gibt mir Zeitzonen wie "Europa / London". Ich möchte bestätigen, wenn dies in das Modell übergeben wird, dass es eine gültige Zeitzone ist, wenn etwas Schlimmes passiert.
So habe ich diese Frage gefunden: Issue validating user Zeitzone für die App Rails auf Heroku und habe diese Validierung ausprobiert:
%Vor%Allerdings ist der Name anders als der tzinfo. Ich denke, dass mein Client-Seite Zeitzone String "Europe / London" ist im Wesentlichen die Wertkomponente der TimeZone Mapping in der TimeZone-Klasse und nicht der Name - in diesem Fall würde auf "London" gesetzt werden.
Also habe ich das versucht:
%Vor% Weder die ursprüngliche Antwort auf die andere SO-Frage noch meine geänderte mit :tzinfo
funktionieren, da beide die Validierung nicht bestehen, wenn: Zeitzone "Europa / London" ist, obwohl dies offensichtlich eine gültige Zeitzone ist!
Was mache ich falsch mit dieser Zeitzonen-Validierung und wie kann ich es beheben?
Sieht so aus, als ob Sie das wollen:
%Vor%Auf meinem Computer enthält diese Liste die folgenden Namen:
%Vor%Eine sauberere Lösung wäre jedoch eine benutzerdefinierte Validierungsmethode wie folgt:
%Vor%Dies ist flexibler in den Werten, die es akzeptiert:
%Vor%Tags und Links ruby datetime ruby-on-rails validation ruby-on-rails-4