如何在ruby中将类名作为变量传递
我有由另一个文件创建的foo.rb和main.rb文件。
foo.rb:
class Foo def initialize @val = 1 end end
main.rb的:
file_name = gets.chomp() require_relative(file_name) class_name = file_name.capitalize a = class_name.new() p "This is val: #{a.val}"
但是我得到一个错误: undefined method
new’for“Foo.rb”:String(NoMethodError)`
我的问题:如何将类名作为值传递。
你需要删除扩展名……
class_name = Object.const_get(file_name.capitalize[/^[^.]*/])