如何正确使用require? - ruby

How to correctly use require? - ruby

我有一个我一直在做的小项目。 在这个项目中,我一直使用rspec来测试类,所以我的项目文件夹结构如下:

.
+--lib
|   +-- # bunch of classes 
|
+--spec
|   +-- # bunch of tests

在项目根目录下,如果我 运行 rspec 所有测试都是 运行 正确。

但是,如果我通过命令行 运行 主脚本,像这样:ruby lib/main.rb,然后我得到这个错误:

`require': cannot load such file

如果我将所有要求更改为 ./lib/class_name 它可以工作,但是 rspec 停止工作。

正确的做法是什么?

所以,我听取了 Sergio Tulentsev 的建议并设置了 $LOAD_PATH,这解决了我的问题!

为此,我在主脚本的开头添加了以下代码:

$LOAD_PATH.unshift(File.dirname(__FILE__))

此代码将当前文件目录添加到$LOAD_PATH(这是一个数组,用于挂载所需文件路径并加载它们)。

换句话说,这使我的主脚本能够将 lib 添加到 $LOAD_PATH 并修复要求。