动态Ruby类调用?

时间:2014-09-12 18:37:54

标签: ruby-on-rails ruby

如果我有一个名为" class User"是否可以通过String调用该类?

例如

user = User.new(正常方式)

但我希望这样做

mystring = "User"
user = mystring.new

2 个答案:

答案 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'而工作。)