2013-05-30 139 views
6

我正在使用Ruby 1.8,我有我想調用的腳本,但它位於父文件夾中。下面是結構:從父目錄加載文件

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

我怎麼能要求從裏面myscript.rbneededscript.rb

回答

5

這就是我,而不是做:

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

在Ruby> = 1.9可以通過允許您加載一個文件,它是相對於包含require_relative語句文件中使用require_relative方法

require_relative補充了內置方法需要。

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

對不起,對於遲來的評論,但正如我所說的使用紅寶石1.8。*。 – zulq

+0

啊不用擔心。就上下文而言,我會指出,當我回答時,版本不在問題中,但在之後進行了編輯。對於版本〜1.8,其他2個答案中的任何一個都是好的。 – fullybaked

5

您還可以通過將這些線路的路徑添加到紅寶石庫路徑做之前myscript.rb的要求

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