Я пытаюсь иметь возможность интернационализировать строки из массива, чтобы заполнить раскрывающееся поле формы выбора. Ниже я разместил код из поста Google в блоге (ссылка с кредитами включена)
То, что я хотел бы сделать, это
- имеют значение = "1", поэтому внутри значения вместо текста присутствует целое число (при текущей опции текст также вставляется в значение
- Я хочу это, потому что у меня есть таблица профиля с такими столбцами, как образование: целое число. Я в замешательстве, если это лучший способ сохранения данных, но подумал, что это так, поскольку одно целое число занимает меньше места в БД
- Есть комментарии к приведенному ниже коду и решению? Есть ли лучший способ сделать это?
У меня есть список стран, который я вставил в свою БД, например DataCountrys , но это нелегко перевести, и я думаю, что должен следовать описанному ниже коду, чтобы сделать его более понятным и переводимым, таким образом, удаляя базу данных. таблица для каждого небольшого списка (раскрывающиеся значения), который есть в моем приложении.
Надеюсь, кто-то может прояснить выше спасибо в Advanche!
Я следовал советам в этом сообщении в группах Google:
https://groups.google.com/forum/#!topic/rails-i18n/mHs7Z_PO6xw
en:
job_categories:
undergraduate: Undergraduate student
graduate: Graduate student
predoctoral: Pre-doctoral student
postdoctoral: Postdoctoral student
associate_prof: Asociate professor
assistent_prof: Assistant professor
research_prof: Research professor
technician: Technician
А в вашей модели:
класс Job
def translated_job_category
I18n.t(job_category, :scope => :job_categories)
end
конец
В вашем помощнике:
module JobsHelper
def job_categories
I18n.t(:job_categories).map { |key, value| [ value, key ] }
end
end
А по вашему мнению:
<%= f.select :job_category, job_categories %>
Вспомогательный метод создает массив, который понимает select-helper.
Сохраняет сокращенные ключи («бакалавриат», «выпускник» и т. Д.) В
базы данных, как своего рода перечислимые. Будьте уверены, чтобы сохранить те же
на всех языках.
Когда вы хотите показать, к какой категории работы относится объект, вы можете сделать
@ job.translated_job_category для возврата переведенного значения.