这个问题已经有了答案:
我需要创建一个类,但条件是,我将接收如下所示的字符串形式的类名
["IndividualContact", "Legal"].each do |var| ind = var.new end
现在我的期望是,我需要打电话
IndividualContact.new 和 Legal.new 但是由于var是一个字符串变量,它调用 .new 在下面给出的字符串上
IndividualContact.new
Legal.new
.new
"IndividualContact".new
而不是打电话
我能按我的预期打电话吗?
使用 Module#const_get (假设这些类已在全局命名空间中定义):
Module#const_get
%w|IndividualContact Legal|.map do |klazz| Kernel.const_get(klazz).new end
上面的代码将返回一个包含两个实例的数组:一个 IndividualContact 其中之一 Legal .
IndividualContact
Legal