This project is archived and is in readonly mode.
Incorrect inflectors for 'business' or '*ness'
Reported by Paulo Pereira | April 2nd, 2009 @ 11:24 AM | in 2.x
Hi there.
I'm using activesupport 2.3.2, and found a simple inflector error.
>> require "activesupport"
=> true
>> "business".singularize
=> "busines"
>> "madness".singularize
=> "madnes"
But plurals and handled nicely.
>> "business".pluralize
=> "businesses"
>> "madness".pluralize
=> "madnesses"
Comments and changes to this ticket
-
Michelangelo Altamore April 3rd, 2009 @ 02:00 PM
- Tag set to activesupport, inflections, inflector
Paulo you're right. I've found that singular words ending in 'ess' like:
business, address, express, dress, press
are singularized wrongly since the current inflections do not contain a proper rule. I propose to include such rule, that you can find attached along with tests.
Example:
Before patch
"address".singularize => "addres" "address".classify => "Addres"
After patch "Address"
"address".singularize => "address" "address".classify => "Address"
-
CancelProfileIsBroken May 17th, 2009 @ 01:37 PM
- State changed from new to wontfix
Rails has a longstanding policy of not taking further inflector patches. Use an initializer in your application instead.
-
Michelangelo Altamore May 24th, 2009 @ 11:02 PM
Hello Mike,
thank you for your response. In case of erratic behaviour of the inflector,
that's enough to add a rule to the inflector initializer and stay neat and
simple.
Just for clarity, the problem raised by Paulo will be solved by adding the
following:ActiveSupport::Inflector.inflections do |inflect|
inflect.singular(/ess$/i, 'ess')
end
to the file:
config/initializers/inflections.rb
Thank you.
-
Jeff Kreeftmeijer November 7th, 2010 @ 04:55 PM
- Tag cleared.
- Importance changed from to Low
Automatic cleanup of spam.
-
Christopher Thompson November 25th, 2010 @ 05:02 PM
Another workaround. Instead of:
s = 'Address' s.singularize # 'Addres'
Do:
s = 'Address' s.pluralize.singularize # 'Address'
Note that this affects the behaviour of .classify as well, but still s.pluralize.classify will work around it.
-
Christopher Thompson November 25th, 2010 @ 05:05 PM
In ticket #6057, Andrés Mejía asked:
"Rails has a longstanding policy of not taking further inflector patches."
May I ask what is the reason behind this?
I'd also like to know the answer for this. I can imagine that patches tend to break other cases, so maybe that's the reason. But for such a long-standing problem that affects Rails 2.3.x and 3.x, I'm surprised to still see this as an issue.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>
People watching this ticket
Attachments
Referenced by
- 2046 Strange pluralize and routing So what about #2399 and "Rails has a longstanding policy ...