Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

override default pluralize for model-name in rails3

my locale is :de and I like to get this:

Sheet.model_name.human.pluralize # => Belegs 

to add me a trailing "e" instead of "s"

Sheet.model_name.human.pluralize # => Belege 

just for the Sheet-class. Can I add it somehow in my config/locales/models/de.yml ?

like image 600
toy Avatar asked May 30 '11 16:05

toy


1 Answers

First of all, you need to stop using .pluralize. It uses the Inflector (which is mainly used for Rails internals, e.g. guessing table names for model Sheet -> sheets).

Sheet.model_name.human # => "Beleg" "Beleg".pluralize # => "Belegs" 

What you should do is to use the :count option.

Sheet.model_name.human(:count => 2) # => "Belege" 

This requires that you have modified your de.yml as such:

de:    ...    activerecord:      ...      models:       sheet:         one: Beleg         other: Belege 
like image 172
Marcel Jackwerth Avatar answered Sep 18 '22 17:09

Marcel Jackwerth