Die Validierung einer Zeitzone ist in Schienen gültig

8

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?

    
RenegadeAndy 03.08.2015, 16:26
quelle

1 Antwort

11

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%     
Matt Brictson 03.08.2015, 17:20
quelle