2011-05-13 142 views
2

所以目前我已經在我的.bashrc文件中包含以下內容。RUBYLIB環境路徑

export RUBYLIB=/home/git/project/app/helpers 

我試圖與具有

require 'output_helper' 

此文件中的規範運行RSpec的是在傭工目錄。我的問題是,當我將出口行更改爲:

export RUBYLIB=/home/git/project/ 

它不再找到幫助程序文件。我認爲ruby應該搜索我提供的整個路徑,而不僅僅是提供的最外面的目錄?這是考慮它的正確方法嗎?如果沒有,我該如何做到這一點,所以RUBY將搜索所有子目錄及其子目錄等?

感謝,

羅賓

回答

5

由於buruzaemon提到,Ruby沒有搜索子目錄,所以你需要包括所有你在你的搜索路徑想要的目錄。不過,你可能想要做的是:

require 'app/helpers/output_helper' 

你是不依賴於RUBYLIB環境變量,這種方式被設置一定的方式。當您將代碼部署到生產環境或與其他人協作時,這些小的依賴關係會導致煩人的調試會話。

另外,作爲附註,您可以指定.作爲搜索路徑,而不是使用機器特定的絕對路徑。

4

類似PATH,你需要明確命名要在其中尋找庫的目錄。但是,這不會包含任何子目錄,因此您還需要列出任何子子目錄,並用冒號分隔它們。

例如:

export RUBYLIB=/home/git/project:/home/git/project/app/helpers