it-swarm.com.de

Ruby Nicht initialisierte Konstante NameError für Klassenname

Ich möchte eine Unterklasse von einer Elternklasse erben.

Hier ist mein Code. 3 Klassen werden in 3 separaten Dateien erstellt.

class Transportation
#codes
end

class Plane < Transportation
#codes
end

class Boat < Transportation
#codes
end

Und als ich diesen Code ausführte, bekam ich den Fehler für Boat, aber kein Problem für Plane, wenn ich nur Plane erstellt habe:

uninitialized constant Transportation (NameError)

Kann mir jemand bei diesem Problem helfen?

Vielen Dank

22
Victor Xiong

Es gibt keinen Grund, warum dieser Code fehlschlägt, es sei denn, die Definition von Transportation befindet sich in einer anderen Datei.

Wenn dies der Fall ist und sich diese in verschiedenen Dateien befinden, vergessen Sie nicht, die Datei mit der Klasse Transportation vor der anderen Datei mit der darin enthaltenen Verwendung anzufordern.

Wie Sie bereits erwähnt haben, gibt es drei verschiedene Dateien.

Sie können eine Datei mit den erforderlichen Bibliotheken erstellen. Vielleicht ist es in Ihrem bin/transport_simulator.rb Datei.

require 'transportation'
require 'boat'
require 'plane'

Jetzt werden sie in der richtigen Reihenfolge benötigt und die Dateien mit den Klassen, die der Unterklasse Transportation angehören, kennen diese Klasse.

36
vgoff