2013-10-02 10 views
6

Ich bin ein absoluter Anfänger in Ruby. Ich habe eine kleine Ruby-Datei erstellt, und es läuft gut, wenn ich den Befehl ruby "methods.rb" ausführen. Das heißt, ich bin im richtigen Verzeichnis.Require nicht in der Lage, Ruby-Datei zu finden

Aber wenn ich irb starten und den Befehl require "methods.rb", erhalte ich die folgende Antwort:

LoadError: cannot load such file -- methods.rb 
    from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require' 
    from (irb):1 
    from /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>' 

Antwort

10

Rubin nicht den aktuellen Pfad Pfad zur Last hinzufügen standardmäßig.

Von irb können Sie stattdessen require "./methods.rb" ausprobieren.

1

Ich habe eine Ruby-Datei namens so.rb im Verzeichnis /home/kirti/Ruby. Also zuerst von IRB Ich würde mein aktuelles Arbeitsverzeichnis mit Dir#chdir Methode ändern. Dann würde ich #load oder #require Methode aufrufen. Meine so.rb Datei enthält nur p hello Zeile.

ich diesen Weg gehen würde:

>> Dir.pwd 
=> "/home/kirti" 
>> Dir.chdir("/home/kirti/Ruby") 
=> 0 
>> Dir.pwd 
=> "/home/kirti/Ruby" 
>> load 'so.rb' 
"hello" 
=> true 
>> require './so.rb' 
"hello" 
=> true 
1

So fügen Sie das Verzeichnis, das Sie den Ruby-Skript aus dem Lastpfad Verwendung ausgeführt werden:

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '')) 

oder wenn Sie Ihre Abhängigkeiten in 'gesetzt haben subdir‘des aktuellen Verzeichnisses:

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'subdir')) 
1

Wenn Sie vorhaben, die Dinge in IRB zu laden, die in Ihrem Köter sind Mietverzeichnis, können Sie tun:

irb -I. 

Beachten Sie den "Punkt" dort, das aktuelle Verzeichnis angibt.

Wenn Sie erforschen und die Änderungen in der Datei, während Sie in IRB sind, verwenden load statt `require als load können Sie Ihre Änderungen laden und require können nur die Datei einmal benötigt werden. Das bedeutet, dass Sie IRB nicht beenden müssen, um zu sehen, wie sich Ihre Änderungen auswirken.

Um herauszufinden, welche Optionen Sie für IRB haben, können Sie irb --help tun, was gut ist, wenn Sie das Tool lernen.

Verwandte Themen