Ruby on Rails: как вы явно определяете множественные имена и имена в единственном числе в Rails? - PullRequest
50 голосов
/ 19 августа 2010

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

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

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

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

Ответы [ 3 ]

92 голосов
/ 19 августа 2010

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

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'bonus', 'bonuses'
end
3 голосов
/ 19 августа 2010

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

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

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

1 голос
/ 19 августа 2010

Я полагаю, что вы используете Inflector в своей среде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...