Modellfeld validieren: wenn der Wert einem Schlüssel in einem Hash entspricht

7

In einem Initialisierer habe ich einen riesigen COUNTRY_CODES Hash mit folgendem Format:

%Vor%

In meinem Modell möchte ich bestätigen, dass der eingegebene Wert ist:

  • vorhanden
  • ein Schlüssel meines Ländercode-Hashes

Wie stelle ich das fest?

Ich kann nicht verwenden:

%Vor%

Ich habe benutzerdefinierte Validatoren ausprobiert, aber ich erhalte Methodenfehler, wenn der Wert null ist, z. wenn ich versuche, value.to_sym zu verwenden, was dazu führt, dass ich den Validator validiere und es wird unordentlich.

Versuchen Sie, die trockenste und effizienteste Art herauszufinden, dies zu tun.

    
Fred Fickleberry III 20.09.2011, 10:18
quelle

3 Antworten

14

Sie müssen COUNTRY_CODES Schlüssel (Symbole) als Strings sammeln und für die Aufnahme validieren. Also verwende:

%Vor%     
Soundar Rathinasamy 20.09.2011, 11:13
quelle
4

Versuchen Sie COUNTRY_CODES.keys , wenn Sie nur mit den Schlüsseln im Hash überprüfen möchten.

    
lemoncider 20.09.2011 10:22
quelle
1

Hows das?

%Vor%     
Yule 20.09.2011 10:43
quelle