什么是“需要”默认查找的path?

在Ruby中,我被告知,在做

require "some_file" 

Ruby会在某些地方查找这个文件。

我知道它寻找some_file.rb ,但它在哪里寻找默认?

这取决于你的平台,以及如何编译Ruby,所以没有“这个”的答案。 你可以通过运行find:

 ruby -e 'puts $:' 

但是,通常,您拥有标准,站点和供应商的Ruby库path,包括每个path下的arch,版本和常规目录。

Ruby将查找$LOAD_PATH数组中指定的所有path。

你也可以像这样添加一个目录来search:

 $LOAD_PATH.unshift File.expand_path('../path/from/this/file/to/another/directory', __FILE__) 

可以通过设置RUBYLIB环境variables来指定其他path

$ LOAD_PATH全局variables(也称为$ :)包含search的目录列表。

请参阅: http : //www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-require

require(string)=> true或false

Ruby尝试加载名为string的库,如果成功则返回true。 如果文件名不parsing为绝对path,将在$:中列出的目录中search。 如果文件的扩展名为“.rb”,则将其作为源文件加载; 如果扩展名是“.so”,“.o”或“.dll”,或者默认共享库扩展名是在当前平台上,那么Ruby会将共享库作为Ruby扩展名加载。 否则,Ruby会尝试在名称中添加“.rb”,“.so”等。 加载的特征的名称被添加到$:中的数组中。