Подтвердить что ты не робот

Ruby on Rails: Как вы явно определяете множественные имена и уникальные имена в Rails?

Например, я использую "Бонус" в качестве моей модели, поэтому я ожидаю, что "бонусы" будут представлять собой форму множественного числа и "бонус" как единственную форму.

Однако в Ruby это приводит к:

"bonus".pluralize # bonus
"bonuses".singularize # bonuse

Итак, когда я делаю "has_many: бонусы", например, он не использует модель Bonus.rb(так как Ruby ожидает модель Bonuse.rb). Есть ли способ исправить это в Ruby on Rails так или иначе, что "бонусы" действуют как множественная форма для модели bonus.rb?

4b9b3361

Ответ 1

В config/initializers вы найдете файл с именем inflections.rb. Здесь есть несколько инструкций, но вам нужно что-то по строкам:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'bonus', 'bonuses'
end

Ответ 2

Просто для резервного копирования bcarlso, больше на Inflector можно найти здесь:

http://4loc.wordpress.com/2009/04/09/inflector-rails-pluralization/

Обратите внимание, что позиция блока Inflector.inflections важна и, как отмечено в ссылке, должна быть после блока Initializer.run.

Ответ 3

Я считаю, что вы используете Inflector в своей среде. rb (память немного отрывочная) Если я правильно помню, вы помещаете его в блок

Inflector.inflections { | i | i.irregular 'bonus', 'bonuses' }