2010-08-19 10 views
41

Por ejemplo, estoy usando "Bonus" como mi modelo, así que esperaría que "bonus" fuera la forma plural y "bonus" fuera la forma singular.Ruby on Rails: ¿Cómo se definen explícitamente nombres plurales y nombres singulares en Rails?

Sin embargo, en Ruby, esto se traduce en:

"bonus".pluralize # bonus 
"bonuses".singularize # bonuse 

Así, cuando hago un "has_many: bonos", por ejemplo, que no utiliza el modelo Bonus.rb (ya que espera un rubí Bonuse.rb modelo en su lugar). ¿Hay alguna manera de corregir eso en Ruby on Rails de alguna manera tal que los "bonos" actúen como la forma plural del bonus.rb modelo?

+1

Pregunta similar: http://stackoverflow.com/questions/1185035/how-do-i-override-rails-naming- convenciones – Chubas

Respuesta

81

En config/initializers, encontrará un archivo llamado inflections.rb. Hay algunas instrucciones aquí, pero tendrá que algo en la línea de:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'bonus', 'bonuses' 
end 
+0

Gracias Beerlington! – sjsc

+0

¡LOL, en realidad estaba buscando usar 'bonus'! –

+0

Hah - ¡lo mismo aquí! –

1

creo que utiliza el Inflector en su environment.rb (memoria es un poco rara, aunque) Si no recuerdo mal lo pones en un bloque

Inflector.inflections { | i | i.irregular 'bonus', 'bonuses' }