2010-05-28 81 views
2

我在我的rails項目的lib目錄中有一個文件。這樣 一個(目錄) A1 A2 a.rb要求文件使用dirname(__ FILE__)還是隻需要文件名?

,當我在a.rb需要A1。

require 'a/a1' 

它會提醒我/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require':沒有這樣的文件加載 - A/A1(MissingSourceFile)

但使用dirname(FILE),它的工作。

require File.dirname(__FILE__) + '/a/a1 

爲什麼?

回答

2

代碼:

 
requie 'a/a1' 

將嘗試從當前工作目錄,這可能不是你的想法,特別是如果不是在命令行(軌道控制檯,或TextMate的以外的環境中執行查找目錄例如)。

 
require File.dirname(__FILE__) + '/a/a1 

追加「/ A/A1在出現該行的文件的路徑,所以你一定總是得到正確的文件,無論環境你在運行。

相關問題