Sie können nicht auf eine lokale Stelle außerhalb des Bereichs zugreifen, in dem sie definiert wurde - in diesem Fall die Datei. Wenn Sie Variablen verwenden möchten, die Dateigrenzen überschreiten, machen Sie sie zu etwas anderem als Einheimischen. $foo
, Foo
und @foo
funktionieren alle.
Wenn Sie dem Symbol wirklich keine Dekoration geben wollen (weil Sie die Art und Weise, wie es liest, vielleicht nicht mögen), besteht ein üblicher Hack darin, es nur als Methode zu definieren: def foo() "bar" end
.
Ich habe Chucks Antwort akzeptiert, weil es eine vernünftige Lösung ist, aber ich habe tatsächlich eine andere Methode benutzt, von der ich dachte, dass ich sie teilen würde. Es ist unglaublich hacky, aber war nützlich für meine Zwecke. Ich musste ein Verzeichnis mit Hunderten von Dateien durchsuchen, von denen jede ein Objekt mit dem gleichen Namen erstellte, und dann einige Informationen über jedes Objekt ausgeben. Für ernsthafte und nicht temporäre Zwecke würde ich dies nicht empfehlen!
%Vor%Normalerweise definiere ich sie nur als Methoden. Ähnlich wie das, was Nickf gesagt hat.
Datei1:
%Vor%Datei2:
%Vor%Fügen Sie dann einfach a:
hinzu require_relative 'file path/file name'
oder require_relative 'file name'
& lt; = wenn Dateien in demselben Verzeichnis liegen.
zu der Datei, in der die Methode / Variable verwendet werden soll.