Создайте гибкое, локализованный, список значений Ruby on Rails

У меня есть список значений (Новичок, Промежуточное звено, Усовершенствованное, Быстрое, Собственное), что я хотел бы:

  • действуйте как модель для СПИСКА ВЫБОРКИ
  • действуйте как модель для преобразования идентификаторов в значения в HTML-таблице
  • используйте в нескольких контроллерах и представлениях
  • сохраните в порядке, который сохраняет бизнес-правила (заказанный уровнем квалификации)
  • локализуйте в какой-то момент в будущем

Существует ли способ реализовать этот список для обращения ко всем или большинству моих потребностей?

5
задан craig 8 March 2010 в 21:50
поделиться

1 ответ

Вы можете поместить определение массива в /config/locales/some_language.yml

например, вы можете иметь следующее в en.yml

en:
   experience_levels: 
          1: Beginner 
          2: Intermediate
          3: Advanced 
          4: Fluent
          4: Native

Чтобы получить пары ключ-значение в помощнике, должно работать следующее:

def experience_levels 
    I18n.t(:experience_levels).map { |key, value| [ value, key ] } 
end

Чтобы использовать это в поле выбора, вы просто поместите следующее в form_for

<%= f.select :experience_levels, experience_levels %>

Если вы используете form_tag вместо этого, вам нужно следующее:

<%= select_tag :experience_levels, options_for_select(experience_levels) %>
9
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: