$ LOAD_PATH不包含工作目录?

时间:2011-12-09 17:04:41

标签: ruby load-path

为什么当前目录不包含在$ LOAD_PATH中?这看起来很奇怪。我只是继续添加它,但是有一些原因我没有看到它只是不自动包含它?

1 个答案:

答案 0 :(得分:5)

$LOAD_PATH包含Ruby 1.8.7中的当前目录,但在1.9.2中已更改此行为。您可以在this question的答案中找到有关此决策背后原因的可能解释,但我认为基本的想法是1.8.7中的.代表执行代码的目录而不是其中的{它地处。在大多数情况下,您不希望. $LOAD_PATH中的require_relative不可靠。

如果您不想在任何地方手动向.添加$LOAD_PATH,那么在1.9.2中使用{{1}}可能是一个不错的解决方案。您可以看到here它所做的只是显式扩展相对路径。有一点需要注意的是,它在1.9.2之前的版本中不可用,因此它会使你的代码与旧的红宝石不兼容。