这里是一个更新手问题: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