Ruby on Rails: Comment définissez-vous explicitement des noms pluriels et des noms singuliers dans Rails?

Par exemple, j’utilise “Bonus” comme modèle, alors je m’attendrais à ce que les “bonus” soient au pluriel et “bonus” au singulier.

Cependant, dans Ruby, cela se traduit par:

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

Ainsi, quand je fais un “has_many: bonus”, par exemple, il n’utilise pas le modèle Bonus.rb (puisque Ruby attend plutôt un modèle Bonuse.rb). Y at-il un moyen de corriger cela dans Ruby on Rails en quelque sorte tel que les “bonus” agissent comme forme plurielle pour le modèle bonus.rb?

Dans config / initializers, vous trouverez un fichier appelé inflections.rb. Il y a quelques instructions ici, mais vous voudrez quelque chose comme:

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

Pour sauvegarder bcarlso, d’autres informations sur Inflector sont disponibles ici:

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

Notez que la position du bloc Inflector.inflections est importante et, comme indiqué dans la référence du lien, doit être après le bloc Initializer.run.

Je crois que vous utilisez l’inflecteur dans votre environnement.rb (la mémoire est un peu sommaire cependant) Si je me souviens bien vous l’avez mis dans un bloc

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