2017-04-06 2 views
0

Ich versuche, ein neues Objekt durch Aufruf einer anderen Klasse zu instanziieren, aber ich bekomme diesen Fehler und ich weiß nicht warum. Ich bin immer noch neu in Ruby, so dass ich hier etwas vermisse. Ich erhalte diese Fehlermeldung:Nicht initialisierte Konstante (Name Error) Objekt erstellen

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

Hier ist mein Code: ** Diese beiden Klassen sind in separaten Dateien **

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

test = TestA.new 

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

Sie sollten Datei benötigen, die 'TestB' Klasse in' TestA' enthält Datei – Ilya

+0

Danke. Das hat funktioniert. Ich wusste nicht, dass du das tun musst. – sorcalin0x11

Antwort

2

Sie haben Datei mit test_b Klassendefinition zu verlangen. Wenn der Name ist test_b.rb wird es sieht aus wie:

require_relative "test_b" 

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

test = TestA.new 
+0

Vielen Dank. Das hat funktioniert. Also müssen Sie jede Datei auflisten, die Sie verwenden möchten? Warum musst du das nicht in Java machen? – sorcalin0x11

+0

Sie müssen - "Import" -Anweisung löst es für z. https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html –

Verwandte Themen