73 votes

Comment remplacer les conventions de dénomination des rails?

J'ai un modèle nommé "vêtements" dont je veux être le singlular (un vêtement). Par défaut, rails dit que le pluriel est vêtement. Vrai ou faux, je pense que ce sera plus lisible si le pluriel est "vêtement".

Comment remplacer la convention de nommage au pluriel? Puis-je le faire correctement dans le modèle pour ne pas avoir à le faire encore et encore? Comment cela changera-t-il la manière dont les itinéraires sont gérés (j'utilise une architecture reposante)?

Merci.

123voto

Rich Seller Points 46052

Je ne suis pas un expert RoR, mais j'ai trouvé une approche possible . Depuis le site référencé, vous pouvez ajouter des règles d'inflexion, par exemple

 # Add new inflection rules using the following format 
ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'clothing', 'clothes'
end
 

Vous les trouverez dans votre fichier environment.rb dans le dossier config / initializers

28voto

chrishomer Points 1694

Pour les rails 2.3.2 et peut-être 2+, vous devez le faire un peu différemment:

 ActiveSupport::Inflector.inflections do |inflect|
    inflect.plural /^(ox)$/i, '\1\2en'
    inflect.singular /^(ox)en/i, '\1'

    inflect.irregular 'octopus', 'octopi'

    inflect.uncountable "equipment"
end
 

5voto

Shan Valleru Points 621

Ajoutez ceci dans votre fichier environment.rb si vous essayez d'arrêter la pluralisation de la base de données

 ActiveRecord::Base.pluralize_table_names = false
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X