2014-01-27 27 views
0

對於我想在Rails應用程序中引用的一些Ruby腳本,我有兩個單獨的路徑。第一個文件是Rails.root/lib/assets/myscript.rb,第二個文件是Rails.root/resources/repo/lib/myotherscript.rb。我如何參考中的myotherscript?我已經知道需要從相對路徑等文件,但如何從完全獨立的文件樹引用?Ruby:如何從一個完全獨立的文件樹需要一個文件

+0

'../../ resources/repo/lib/motherscript.rb'應該可以工作 – Stefan

+0

Get'無法加載這樣的文件錯誤。 – T145

回答

0

正如Stefan所說。
您可以使用require_relative在任何文件樹中加載任何文件。

看:

$ cat /etc/hello.rb 
module Hello 
    def say_hello 
    puts "Hello" 
    end 
end 

==============================

$ cat /Users/amalrik/code/use_hello.rb 
require_relative '/etc/hello' 

include Hello 

say_hello 

==============================

$ ruby use_hello.rb 
Hello 

編輯: 在這裏,你可以看看在示例在軌道環境中,並與您的解決方案進行比較: https://github.com/amalrik/require_relative_on_rails

編輯: 我剛剛意識到,如果指定完整路徑,也需要工作。所以我建議仔細檢查你的代碼是否有錯別字。看:

$ cat /etc/hello.rb 
module Hello 
    def say_hello 
    puts "Hello" 
    end 
end 

==============================

$ cat /Users/amalrik/code/use_hello.rb 
require '/etc/hello' 

include Hello 

say_hello 

==== ==========================

$ ruby use_hello.rb 
Hello 

對於紅寶石負載路徑的更詳細的解釋,我建議這個讀:$: == $LOAD_PATH

+0

嗯,我這樣做,但得到通常的'無法加載這樣的文件'錯誤。 – T145

+0

您能否請您發佈代碼示例和完整的錯誤消息? –

+0

圍繞「say_hello」定義的類是否會影響任何內容? – T145