Ruby要求';文件';不';不工作,但需要'/文件';做为什么?

Ruby要求';文件';不';不工作,但需要'/文件';做为什么?,ruby,require,Ruby,Require,我有一个满是ruby文件的文件夹,当我尝试使用require'file'在同一目录下的另一个文件夹中请求一个文件时,我会得到一个LoadError,但当我使用require./file'时,一切都正常。有人能给我解释一下为什么会发生这种情况吗?如果有什么方法可以不在文件中添加/而需要一个文件 (目录图片): 加载路径中没有当前目录 检查$LOAD_PATH变量的内容如果您想要求文件不是来自系统$LOAD_PATH,而是相对于所要求文件的目录,您应该使用。(正如你所看到的,这篇文章并没有被广泛地记

我有一个满是ruby文件的文件夹,当我尝试使用
require'file'
在同一目录下的另一个文件夹中请求一个文件时,我会得到一个
LoadError
,但当我使用
require./file'
时,一切都正常。有人能给我解释一下为什么会发生这种情况吗?如果有什么方法可以不在文件中添加
/
而需要一个文件

(目录图片):
加载路径中没有当前目录


检查$LOAD_PATH变量的内容

如果您想
要求文件不是来自系统
$LOAD_PATH
,而是相对于所要求文件的目录,您应该使用。(正如你所看到的,这篇文章并没有被广泛地记录。)

虽然这篇文章很老,但我认为一些额外的信息对初学者来说非常有用

考虑require的最佳方式是与UNIX$PATH变量相关。作为一个刷新器,UNIX中的$PATH变量是可以找到可执行文件的目录列表。因此,当您在任何UNIX终端上键入程序名时,您的计算机正在查看$PATH变量中指定目录中的可执行文件。require做的事情非常相似。例如,当您在Ruby文件的顶部写入require“set”时,您告诉Ruby查看一组名为set.rb(Ruby的set library)的库的目录

那么Ruby在哪里查找set.rb呢?好吧,再一次,Ruby与UNIX的$PATH变量非常相似。它是全局变量$LOAD_PATH,有时也称为丑陋的、非描述性的别名$:(顺便说一句,我不建议使用它,尽管它可能很短)。它是一个目录名数组,Ruby在遇到请求时会在其中查找

这里有一篇内容丰富的帖子,你可以从中获得更多关于
require
load
require\u relative

的信息