How do you a new inflection rule in Rails 3?

Hi,

I’m trying to implement dehumanize method in Rails 3. Basically what
this post does:

Here:

module ActiveSupport::Inflector

does the opposite of humanize… mostly. Basically does a

space-substituting .underscore

def dehumanize(the_string)
result = the_string.to_s.dup
result.downcase.gsub(/ +/,‘_’)
end
end
class String
def dehumanize
ActiveSupport::Inflector.dehumanize(self)
end
end

config/inflections.rb in Rails 3 says:

Add new inflection rules using the following format

ActiveSupport::Inflector.inflections do |inflect|
inflect.plural /^(ox)$/i, ‘\1en’
end

But if change that to inflect.pluralo /^(ox)$/i, ‘\1en’
It will complain with:
block in <top (required)>': undefined method pluralo’ for
#ActiveSupport::Inflector::Inflections:0x00000100d5f560
(NoMethodError)

I’m missing something.

Cheers.

On 23 February 2011 08:20, comopasta Gr [email protected] wrote:

Add new inflection rules using the following format

ActiveSupport::Inflector.inflections do |inflect|
inflect.plural /^(ox)$/i, ‘\1en’
end

But if change that to inflect.pluralo /^(ox)$/i, ‘\1en’
It will complain

plural != pluralo

Michael P. wrote in post #983295:

On 23 February 2011 08:20, comopasta Gr [email protected] wrote:

Add new inflection rules using the following format

ActiveSupport::Inflector.inflections do |inflect|
inflect.plural /^(ox)$/i, ‘\1en’
end

But if change that to inflect.pluralo /^(ox)$/i, ‘\1en’
It will complain

plural != pluralo

Hi, do you mean that I misspelled the name?
What I mean is that any new name I put there generates a method not
found error.

So if I write inflect.dehumanize I get:
block in <top (required)>': undefined method dehumanize’ for
#ActiveSupport::Inflector::Inflections:0x00000100d5f560
(NoMethodError)

So apparently something else is needed other than the rule in that file
(?)

I wasn’t clear, sorry.