如何在ruby中将类名作为变量传递

时间:2014-05-25 17:10:57

标签: ruby class variables

我有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)`

我的问题:如何将类名作为值传递。

1 个答案:

答案 0 :(得分:0)

您需要删除扩展程序...

class_name = Object.const_get(file_name.capitalize[/^[^.]*/])