10 votes

Changer le pluriel du modèle généré dans les rails ?

J'utilise cette commande :

rails generate model DayOfMonth day:integer

Rails a généré le modèle "DayOfMonth" et la table "day_of_months".

Je veux qu'il crée la table "days_of_month" à la place.

Je sais que cela a quelque chose à voir avec la classe Inflector et le fichier inflector.rb dans le dossier initializers.

Mais je ne comprends pas comment faire pour que ça marche.

J'utilise Rails 3.

Quelqu'un pourrait-il m'aider ou m'indiquer un tutoriel à ce sujet ?

Merci

15voto

NullUserException Points 42268
ActiveSupport::Inflector.inflections do |inflect|
 inflect.irregular 'day of month', 'days of month'
end

Lisez : http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html

6voto

Jesse Wolgamott Points 30552

Vous pouvez simplement modifier la migration et ajouter

Rails 3.2+ / 4+

class DayOfMonth < ActiveRecord::Base
   self.table_name = "days_of_month"
end

Rails 3

class DayOfMonth < ActiveRecord::Base
  set_table_name "days_of_month"
end

6voto

Bishma Stornelli Points 839

Vous devez indiquer la forme plurielle de 'day of month' dans un initialisateur 'inflections.rb' :

ActiveSupport::Inflector.inflections do |inflect|
     inflect.irregular 'day of month', 'days of month'
     inflect.irregular 'day_of_month', 'days_of_month'
end

Ça a marché pour moi. Cependant, j'obtiens toujours des erreurs lorsque je définis des associations avec ce modèle :

has_many :days_of_month

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