0

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

4

1 回答 1

5

$LOAD_PATH包括 Ruby 1.8.7 中的当前目录,但此行为在 1.9.2 中已更改。您可以在此问题的答案中找到此决定背后的原因的可能解释,但我认为基本思想是.1.8.7 代表执行代码的目录,而不是代码所在的目录。而且在大多数情况下,您不希望这样做,并且.在您的情况下$LOAD_PATH是不可靠的。

require_relative如果您不想.手动添加到您的任何地方,在 1.9.2 中使用可能是一个很好的解决方案$LOAD_PATH。您可以在这里看到它所做的只是显式扩展相对路径。需要注意的一件事是它在 1.9.2 之前的版本中不可用,因此它会使您的代码与较旧的 rubies 不兼容。

于 2011-12-09T17:16:41.193 回答