Вы должны создать инициализатор, в который вы поместите:
class ActiveRecord::Base
def self.has_translation(*attributes)
attributes.each do |attribute|
define_method "#{attribute}" do
self.send "#{attribute}_#{I18n.locale}"
end
end
end
end
Тогда в ваших моделях:
has_translation :name, :whatever
Чтобы он автоматически вызывал правильное имя столбца в зависимости от вашей текущей локали. На ваш взгляд:
@variable.name # calling @variable.name_en if locale = :en
# @variable.name_es if locale = :es
Конечно, я предположил, что уже не существует таблицы с именем name
.