2010-05-28 84 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在出现该行的文件的路径,所以你一定总是得到正确的文件,无论环境你在运行。

相关问题