Instantiate classes in Ruby on Rails via String names
How to instantiate classes in Ruby on Rails via dynamic strings, like PHP $class = new $var()
The most simple way to dynamically instantiate a class from String in rails.
On Rails do:
mystring = “My::String::Name” #or mystring = “MyClassName”
myclass = mystring.constantize.new
Errors:
‘NotFoundClass’.constantize
# => NameError: wrong constant name blargle
More info at: http://apidock.com/rails/ActiveSupport/Inflector/constantize
In Ruby without Rails, you can do with:
classname = ‘Module::Class’ #or only Class
classConst = Object.const_get( classname )
object = classConst.new