web-dev-qa-db-fra.com

Comment remplacer les conventions de dénomination Rails?

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

Comment remplacer la convention d'appellation plurielle? Puis-je le faire correctement dans le modèle pour ne pas avoir à le faire encore et encore? Comment cela va-t-il changer la façon dont les itinéraires sont gérés (j'utilise une architecture reposante)?

73
chrishomer

Je ne suis pas un expert RoR, mais j'ai trouvé une approche possible . Depuis le site référencé, vous pouvez ajouter une règle d'inflexion à l'intérieur du config/initializers/inflections.rb fichier:

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

Pour 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
28
chrishomer

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

ActiveRecord::Base.pluralize_table_names = false
5
Shan Valleru