如果我有一个名为" class User"是否可以通过String调用该类?
例如
user = User.new
(正常方式)
但我希望这样做
mystring = "User"
user = mystring.new
答案 0 :(得分:5)
使用方法const_get
my_string = "User"
user = Object.const_get(my_string).new
答案 1 :(得分:1)
我相信你可以在这里找到答案:ruby convert class name in string to actual class
以上似乎仅限于Ruby on Rails中的方法,如果您不使用Rails,可能需要查看此处:http://blog.andrewvc.com/quickly-constantize
第二个链接提供的代码行似乎有效,只需在字符串的开头替换字符串,然后如果在结果上调用new,则可以通过调用mystring.new来初始化对象(它似乎不是为'新mystring'而工作。)