This project is archived and is in readonly mode.
Incorrect inflectors for 'business' or '*ness'
-
Michelangelo Altamore
- 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"
-
José Valim
- Address is a quite common case and patch works.
-
CancelProfileIsBroken
- 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
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.
-
Christopher Thompson
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
In ticket #6057 'Address' does not singularize properly, 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.
