2017-04-06 60 views
0

我试图通过调用另一个类实例化一个新对象,但我不断收到此错误,我不知道为什么。我对Ruby还是个新手,所以我可能会在这里错过一些东西。我收到此错误:未初始化的常量(名称错误)创建对象

TestA.rb:3 in `initialize': uninitialized constant TestA::TestB (NameError) 
    from TestA.rb:7:in `new' 
    from TestA.rb:7:in `<main>' 

这里是我的代码:**这两个类在不同的文件**

class TestA 
    def initialize 
     @test = TestB.new 
    end 
end 

test = TestA.new 

class TestB 
    def test_method 
     print "Hello" 
    end 
end 
+0

如果您需要的文件,包含'TestB'类'TestA'文件 – Ilya

+0

谢谢。这工作。我不知道你必须这样做。 – sorcalin0x11

回答

2

您有权要求与test_b类定义文件。如果它的名字是test_b.rb它会看起来像:

require_relative "test_b" 

class TestA 
    def initialize 
     @test = TestB.new 
    end 
end 

test = TestA.new 
+0

非常感谢。这工作。所以你必须列出你打算使用的每个文件?你为什么不用Java来做这件事? – sorcalin0x11

+0

您必须使用'import'语句解决它。 https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html –

相关问题