¿Cómo anulo las convenciones de nomenclatura de rieles?

Resuelto chrishomer asked hace 15 años • 4 respuestas

Tengo un modelo llamado "ropa" que quiero que sea singular (una prenda de vestir). Por defecto, Rails dice que el plural es ropa. Bien o mal, creo que será más legible si el plural es "ropa".

¿Cómo anulo la convención de nomenclatura plural? ¿Puedo hacerlo bien en el modelo para no tener que hacerlo una y otra vez? ¿Cómo cambiará esto la forma en que se manejan las rutas (estoy usando una arquitectura tranquila)?

chrishomer avatar Jul 27 '09 00:07 chrishomer
Aceptado

No soy un experto en RoR, pero encontré un posible enfoque . Desde el sitio al que se hace referencia, puede agregar una regla de inflexión dentro del config/initializers/inflections.rbarchivo:

# Add new inflection rules using the following format 
ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'clothing', 'clothes'
end
Rich Seller avatar Jul 26 '2009 17:07 Rich Seller

Para Rails 2.3.2 y tal vez 2+, debes hacerlo un poco diferente:

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
chrishomer avatar Jul 26 '2009 17:07 chrishomer

Agregue esto en su environment.rbarchivo si está intentando detener la pluralización de la base de datos.

ActiveRecord::Base.pluralize_table_names = false
Shan Valleru avatar Sep 26 '2012 23:09 Shan Valleru