2009-10-28 5 views
5

Можно создать дубликат:
How do I override rails naming conventions?рубин на рельсах плюрализация помочь?

Мое приложение собирается быть на испанском языке. Скажите, что я хочу, чтобы эшафот генерировал actividad. множественное число будет actividades, поэтому я хочу, чтобы таблица и контроллер были названы так .... как я могу это сделать?

ответ

10

Вставьте следующий код в конфиге/environment.rb:

Inflector.inflections do |inflect| 
    inflect.irregular 'actividad', 'actividades' 
end 

Проверьте код в консоли (сценарий/консоли):

'actividad'.pluralize 
'actividades'.singularize 

Более подробную информацию можно найти здесь: http://codeidol.com/other/rubyckbk/Web-Development-Ruby-on-Rails/Understanding-Pluralization-Rules/

3

Я думаю, что лучше всего написать свой код на английском языке и использовать the i18n api, чтобы представить контент на испанском и других языках, если это необходимо.

+0

Это очень «открытый источник» POV. В реальных приложениях часто вы выбираете классы кодирования из бизнес-модели клиентов. Перевод их на английский язык иногда не просто плохая идея, это также может нарушить соглашение! – rhavin

6

Вы можете добавить свои собственные плюрализации в Rails, добавив перегибы. Rails должен иметь файл под названием inflections.rb в/config/initializers. Вы можете добавить его там, если это не так. Мой файл в качестве примера (комментарии взяты из Rails):

# Add new inflection rules using the following format 
# (all these examples are active by default): 
# Inflector.inflections do |inflect| 
# inflect.plural /^(ox)$/i, '\1en' 
# inflect.singular /^(ox)en/i, '\1' 
# inflect.irregular 'person', 'people' 
# inflect.uncountable %w(fish sheep) 
# end 

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.plural(/rion$/ ,'ria') # criterion => criteria 
    inflect.singular(/ria$/, 'rion') # criteria => criterion 
end 
Смежные вопросы