要求文件使用dirname(__ FILE__)或只需要文件名?

时间:2010-05-28 07:41:06

标签: ruby-on-rails ruby

我在rails项目的lib目录下有一个文件。像这样 a(目录)   A1   a2 a.rb

当我在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

为什么?

1 个答案:

答案 0 :(得分:2)

代码:

requie 'a/a1'

将尝试从当前工作目录中找到目录a,这可能与您的想法不同,尤其是在从命令行以外的环境(例如rails控制台或textmate)执行时。

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

将'/ a / a1附加到出现该行的文件的路径,因此无论您在哪个环境中运行,都可以确保始终获取正确的文件。