這裏是一個更新手問題:Ruby如何知道在哪裏可以找到所需的文件?
require 'tasks/rails'
我看到了這條線的Rakefile在每個軌道項目的根路徑。我想用這條線,要求供應商/導軌/ railties/lib中/任務/ rails.rb得到所有耙任務加載:
$VERBOSE = nil
# Load Rails rakefile extensions
Dir["#{File.dirname(__FILE__)}/*.rake"].each { |ext| load ext }
# Load any custom rakefile extensions
Dir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].sort.each { |ext| load ext }
Dir["#{RAILS_ROOT}/vendor/plugins/*/**/tasks/**/*.rake"].sort.each { |ext| load ext }
我的問題是,爲什麼只有「任務/軌」是需要指定方法,但不是文件的完整路徑?
在此先感謝。
我不明白,你能更具體嗎? – eric2323223 2009-01-06 16:49:16
這會得到當前正在運行的腳本的文件名,它使用File.dirname獲取文件所在的目錄,然後向其中添加一個新文件(即,要求知道文件位於同一目錄中,但不在$ LOAD_PATH中)。然後File.join安全地生成新的文件名。 – Lolindrath 2009-01-06 17:16:03