I18n перевод данных модели - PullRequest
1 голос
/ 15 ноября 2010

Я не могу понять, как преобразовать данные модели в Rails (3.0.1) с I18n.

Пример ситуации:

У меня есть форма, в которой регистрант выбирает свой вид спорта.Спортивный выбор - это выпадающий список, который вызывается по телефону:

Sport.all.collect{ |s| [s.name, s.id]}

Мне хочется наивно написать:

Sport.all.collect{ |s| [t(s.name), s.id]}

Но я не понимаю, как рельсы узнают, что искать именакак "Легкая атлетика".Как бы я назвал имена на разных языках?Каковы лучшие практики для реализации этого?

Спасибо всем!

Ответы [ 2 ]

2 голосов
/ 15 ноября 2010

Если Sport является моделью в базе данных, вам лучше будет также сохранить переводы в базе данных. Добавьте столбец language к вашей модели Sport и заполните

Sport.where(:language => I18n.locale).collect{|s| [s.name, s.id]}
0 голосов
/ 20 сентября 2012

Я думаю, что наиболее правильным способом является использование globalize3

Если гем globalize вызывает ошибку массового назначения во время db:migrate, то добавьте следующий код в инициализатор:

Globalize::ActiveRecord::Translation.class_eval do
  attr_accessible :locale
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...