为什么当前目录不包含在$LOAD_PATH中?这看起来很奇怪。我只是不断地添加,但有什么原因我没有看到它只是没有自动包含?
$LOAD_PATH
在Ruby 1.8.7中包含当前目录,但这种行为在1.9.2中已经改变。您可以在对这个问题的回答中找到可能的解释,但我认为基本的想法是,1.8.7中的.
表示执行代码的目录,而不是代码所在的目录。在大多数情况下,你不希望这样,.
在$LOAD_PATH
中是不可靠的。
使用require_relative
在1.9.2可能是一个很好的解决方案,如果你不想手动添加.
到你的$LOAD_PATH
无处不在。你可以看到它所做的只是显式展开相对路径。需要注意的一点是,它在1.9.2之前的版本中不可用,因此它会使您的代码与旧的ruby不兼容。