Ich habe ein Modell namens "Kleidung", das ich als Singlular (ein Kleidungsstück) bezeichnen möchte. Standardmäßig sagt Schienen, dass der Plural Kleidung ist. Richtig oder falsch, ich denke, es ist besser lesbar, wenn der Plural "Kleidung" ist.
Wie überschreibe ich die Plural-Namenskonvention? Kann ich es im Modell richtig machen, damit ich es nicht immer wieder machen muss? Wie wird sich dadurch ändern, wie Routen behandelt werden (ich verwende eine erholsame Architektur)?
ruby-on-rails
naming-conventions
pluralize
Chrishomer
quelle
quelle
Antworten:
Ich bin kein RoR-Experte, habe aber einen möglichen Ansatz gefunden . Auf der referenzierten Site können Sie der
config/initializers/inflections.rb
Datei eine Flexionsregel hinzufügen :# Add new inflection rules using the following format ActiveSupport::Inflector.inflections do |inflect| inflect.irregular 'clothing', 'clothes' end
quelle
ActiveSupport::Inflector.inflections do |inflect|
Wenn es Inflector nicht alleine findetActiveSupport::Inflector.inflections(:en)
Für Schienen 2.3.2 und vielleicht 2+ müssen Sie es etwas anders machen:
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
quelle
Fügen Sie dies in Ihre
environment.rb
Datei ein, wenn Sie versuchen, die Datenbankpluralisierung zu stoppenActiveRecord::Base.pluralize_table_names = false
quelle
Mit Ruby 2.2.2 Windows oder Linux war für mich die beste Lösung:
ActiveRecord::Base.pluralize_table_names = false class Persona < ActiveRecord::Base end personas = Persona.all personas.each do | personita | print "#{personita.idpersona} #{personita.nombre}\n" end p Persona.count
quelle