Rails выбирает вспомогательный метод - PullRequest
1 голос
/ 28 июля 2011

Мои настройки: Rails 3.0.9, Ruby 1.9.2

У меня определена глобальная константа

TYPES = { "visa" => "Visa", "master" => "MasterCard" }

Я хочу инвертировать значения для метода выбора, я знаю этоЗвучит глупо, но есть другая часть моего кода, которая нуждается в этой функциональности, поэтому я пытаюсь выяснить, возможно ли это.Вот что у меня есть, но у меня ничего не получилось

<%= f.select :card_type, TYPES.each { |key, value| [value, key] } %>

1 Ответ

1 голос
/ 28 июля 2011

Используйте метод invert, встроенный в Hash:

TYPES = { "visa" => "Visa", "master" => "MasterCard" }

TYPES.invert
# => {"Visa"=>"visa", "MasterCard"=>"master"}

Итак:

<%= f.select :card_type, TYPES.invert %>

Примечания:

  1. Почему бы не использовать символы вместо строк для ключа .. :master вместо "master"
  2. Значения оригинала TYPES будут использоваться в качестве ключей для invert 'ed Hash, поэтому убедитесь, что все значения являются уникальными.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...