From a string containing a class name to a Real Class Object
Doing the same action on multiple clases.
Some days ago I was needing to make a change on several models in rails, those models had the same attribute that I wanted to changed on each of them, so to do it I used the Kernel.const_get() method. To convert the string name of the classes into a real clases itself.
"All the built-in classes, along with the classes you define, have a corresponding global constant with the same name as the class." http://www.ruby-doc.org/
["Model1","Model2","Model3","Model4"].each do |t|
klass = Kernel.const_get(t)
if klass.is_a?(Class) #To be sure
#Now here you can use this Class normaly
klass.method_x
end
end
Written by Esteban Arango Medina
Related protips
2 Responses
Why jump through hoops with reassignment instead of if klass.is_a?(Class)
over 1 year ago
·
@richoh You're right; I just wanted to 'clarify' that it could not be a Class
over 1 year ago
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#