I am trying to create a new class to that will inherit from ActiveRecord::Base
the class needs to be dynamically generated from a string
"general_systems".camelize.singularize = Class.new < ActiveRecord::Base
However I keep getting the error:
undefined method `singularize=' for "GeneralSystems":String
I've also tried to constantize
the string
>> foo = "general_systems".camelize.singularize
=> "GeneralSystem"
>> foo.constantize
NameError: uninitialized constant GeneralSystem
from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:124:in `block in constantize'
from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:123:in `each'
from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:123:in `constantize'
from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/core_ext/string/inflections.rb:43:in `constantize'
from (irb):4
from /usr/bin/irb:12:in `<main>'
>> foo.constantize = Class.new
NoMethodError: undefined method `constantize=' for "GeneralSystem":String
from (irb):5
from /usr/bin/irb:12:in `<main>'
Any help would be greatly appreciated.
If you're using Rails, it provides a method called #constantize
that will work:
irb(main):017:0> Object.const_get 'House::Owns'
NameError: wrong constant name House::Owns
'House::Owns'.constantize
=> House::Owns