2013-10-02 16 views
6

Sono un principiante assoluto in Ruby. Ho creato un piccolo file rubino e funziona correttamente quando eseguo il comando ruby "methods.rb". Ciò significa che sono nella directory corretta.Non è possibile trovare il file rubino

Ma quando lancio IRB ed eseguire il comando require "methods.rb", ottengo la seguente risposta:

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>' 

risposta

10

Ruby non aggiungere il percorso corrente al percorso di carico per impostazione predefinita.

Da irb, si può provare require "./methods.rb" invece.

1

Ho un file rubino chiamato so.rb nella directory /home/kirti/Ruby. Quindi prima da IRB vorrei cambiare la mia attuale directory di lavoro usando il metodo Dir#chdir. Quindi chiamerei il metodo #load o #require. Il mio file so.rb contiene solo la riga p hello.

vorrei andare in questo modo:

>> 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

Per aggiungere la directory che si sta eseguendo lo script ruby ​​dal all'uso percorso di carico:

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

o se avete messo le dipendenze in ' subdir 'della directory corrente:

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

Se si caricheranno le cose in IRB che si trovano nel proprio server affitto directory, si può fare:

irb -I. 

Notare il 'punto' lì, che indica la directory corrente.

Se si stanno esplorando e apportare modifiche in quel file, mentre si è in IRB, utilizzare load piuttosto che `require come load consente di caricare le modifiche e require consentirà solo il file da richiedere una volta. Ciò significa che non dovrai uscire dall'IRB per vedere come le tue modifiche sono interessate.

Per scoprire quali opzioni avete per IRB, è possibile fare irb --help che è bene fare se si sta imparando lo strumento.

Problemi correlati