2013-05-30 10 views
6

Sto lavorando con Ruby 1.8 e ho uno script che voglio chiamare ma è in una cartella principale. Qui di seguito è la struttura:Carica file dalla directory principale

maindir/ 
neededscript.rb 
    subdir/ 
    subdir2/ 
     myscript.rb 

Come posso richiedere neededscript.rb dall'interno myscript.rb?

risposta

5

Questo è quello che ho fatto, invece:

File.expand_path("../../neededsript.rb",File.dirname(__FILE__)) 
6

In Ruby> = 1.9 è possibile utilizzare il metodo require_relative

require_relative integra il metodo integrato richiede, consentendo di caricare un file che è relativo al file contenente l'istruzione require_relative.

require_relative '../../neededscript.rb' 
+0

Siamo spiacenti per il commento in ritardo, ma come ho detto sto usando Ruby 1.8. *. – zulq

+0

Ah non preoccuparti. Solo per il contesto, sottolineo che la versione non era nella domanda quando ho risposto :) ma è stata modificata in dopo. Per la versione ~ 1.8, le altre 2 risposte sono buone. – fullybaked

5

È inoltre possibile aggiungere il percorso al percorso ruby ​​librerie aggiungendo queste righe a myscript.rb prima di fare la richiedono

binpath = File.dirname(__FILE__) 
$:.unshift File.expand_path(File.join(binpath, ".."))