Hi,
I am create a gem and I have encounter a problem using active_support
3.x and the classify method from the Inflector module.
If i am using active_support version 2.3.x I am able to do so:
ActiveSupport::Inflector::classify(“car”)
=> Car
But in ActiveSupport 3, things have changed a little. If I am reading
correctly
the module documentation
(https://github.com/rails/rails/blob/3-0-7/activesupport/lib/active_support/inflector/inflections.rb)
it should be working like this:
ActiveSupport::Inflector.inflections.classify(“car”)
=> NoMethodError: undefined method `classify’ for
#ActiveSupport::Inflector::Inflections:0x101bb6848
But it doesn’t work… I really don’t understand why I get the
NoMethodError as the method exists in the documentation and when I
autocomplete the inflections instance I have the classify method.
ps: i am not using Rails or the Rails Console
Does someone has any idea where this could come from?
GReg
On Sun, May 15, 2011 at 4:35 PM, Gregory Ma [email protected]
wrote:
(https://github.com/rails/rails/blob/3-0-7/activesupport/lib/active_support/inflector/inflections.rb)
ps: i am not using Rails or the Rails Console
Does someone has any idea where this could come from?
GReg
The way to load Active Support changed with AS 3.0.0. I suspect your
code is loading active_support.rb, which is now really really light.
This is explained at the beginning of the Active Support Core
Extensions guide:
http://guides.rubyonrails.org/active_support_core_extensions.html#how-to-load-core-extensions
That’s focused on core extensions, but if you do not want to have the
String class extended with inflection methods, the same principles
apply to non-core extensions.
Thanks for the tip, it’s working.
Thanks again I have been able to fix this but I am encountering a new
issue.
If works fine with ActiveSupport 2.3.x mais but it doesn’t work 3.0.x
Here is the line:
board = :ruby_forum
klass = board.respond_to?(:classify) ? board.classify :
ActiveSupport::Inflector::classify(board)
NoMethodError: undefined method `classify’ for ActiveSupport::Inflector:Module
This line doesn’t work in version 3 because it evaluates the last
condition, and the classify method doesn’t exist in version 3.
What trick could I use?