【发布时间】:2011-12-09 17:04:40
【问题描述】:
为什么当前目录不包含在 $LOAD_PATH 中?这似乎很奇怪。我只是继续添加它,但是否有某些原因我没有看到它没有自动包含在内?
【问题讨论】:
为什么当前目录不包含在 $LOAD_PATH 中?这似乎很奇怪。我只是继续添加它,但是否有某些原因我没有看到它没有自动包含在内?
【问题讨论】:
$LOAD_PATH 包含 Ruby 1.8.7 中的当前目录,但此行为在 1.9.2 中已更改。您可以在this question 的答案中找到该决定背后的原因的可能解释,但我认为基本思想是 1.8.7 中的. 代表执行代码的目录,而不是它所在的目录。在大多数情况下,您不希望这样,并且您的 $LOAD_PATH 中的 . 不可靠。
如果您不想在任何地方手动将. 添加到您的$LOAD_PATH,在1.9.2 中使用require_relative 可能是一个很好的解决方案。您可以看到here 它所做的只是显式扩展相对路径。需要注意的一点是,它在 1.9.2 之前的版本中不可用,因此它会使您的代码与旧 rubies 不兼容。
【讨论】: