Validate model field: если значение равно ключу в хэше

В инициализаторе у меня есть огромный COUNTRY_CODES хэш, с форматом:

{ :us => "United States, :de => "Germany" }

В моей модели я хочу подтвердить, что введенное значение равно:

  • present
  • a key of my country code hash

How do I apporach this?

I can't use:

validates :country, :presence => true,
                    :inclusion => { :in => COUNTRY_CODES }

I've tried custom validators, but I get method errors when the value is nil, например, когда я пытаюсь использовать value.to_sym, что заставляет меня проверять валидатор, и он становится неаккуратным.

Пытаюсь найти наиболее DRY и эффективный способ сделать это.

7
задан Fred Fickleberry III 20 September 2011 в 10:18
поделиться