为什么当前目录不包含在$ LOAD_PATH中?这看起来很奇怪。我只是继续添加它,但是有一些原因我没有看到它只是不自动包含它?
答案 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之前的版本中不可用,因此它会使你的代码与旧的红宝石不兼容。