如何正确使用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
并修复要求。
我有一个我一直在做的小项目。 在这个项目中,我一直使用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
并修复要求。