views:

63

answers:

3

For example, I'm using "Bonus" as my model, so I'd expect "bonuses" to be the plural form and "bonus" to be the singular form.

However, in Ruby, this results in:

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

So, when I do a "has_many :bonuses", for example, it doesn't use the Bonus.rb model (since Ruby expects a Bonuse.rb model instead). Is there a way to correct that in Ruby on Rails somehow such that "bonuses" acts as the plural form for the model bonus.rb?

+1  A: 

I believe you use the Inflector in your environment.rb (memory's a bit sketchy though) If I remember correctly you put it in a block

Inflector.inflections { | i | i.irregular 'bonus', 'bonuses' }
bcarlso
Thanks so much bcarlso
sjsc
+2  A: 

Just to back up bcarlso, more on Inflector can be found here:

http://4loc.wordpress.com/2009/04/09/inflector-rails-pluralization/

Note that the position of the Inflector.inflections block is important and, as noted in the link reference, must be after the Initializer.run block.

Warren
Thanks a bunch for the link Warren
sjsc
+3  A: 

In config/initializers, you will find a file called inflections.rb. There are some instructions in here, but you will want something along the lines of:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'bonus', 'bonuses'
end
Beerlington
Thank you Beerlington!
sjsc