Singularize Pluralize "tax"


#1

I have a table: municipal_taxes and a model: MunicipalTax
which belongs_to :company
Company has_many :municipal_taxes

I get this error:
NameError: uninitialized constant Company::MunicipalTaxis
from /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.4.1/lib/
active_support/dependencies.rb:477:in `const_missing’

When I open up the console I see that:

“tax”.pluralize # => “taxes”
“taxes”.singularize # => “taxis”
“taxis”.pluralize # => “taxes”
“taxis”.singularize # => “taxi”

I corrected this with the Inflector in environment.rb but why might
this be happening?


#2

The inflector isn’t perfect; a few attempts have been made to add a
few things, but the typical response is deal with it in
environment.rb. It’s getting “taxes” => “taxis” from the regex that
says “axes” => “axis.”

You did the right thing (in the Rails core team’s opinion) by
addressing it in environment.rb. :slight_smile:

–Jeremy

On 3/12/07, removed_email_address@domain.invalid removed_email_address@domain.invalid wrote:

When I open up the console I see that:


http://www.jeremymcanally.com/

My free Ruby e-book:
http://www.humblelittlerubybook.com/book/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/


#3

As a workaround you can always use the :class_name and :foreign_key
options also to override the default naming.

Michael

On Mar 12, 11:29 am, “removed_email_address@domain.invalid”