所以目前我已将以下内容包含在我的.bashrc文件中。
export RUBYLIB=/home/git/project/app/helpers
我正在尝试使用具有
的规范运行rspecrequire 'output_helper'
此文件位于helpers目录中。我的问题是,当我将导出行更改为:
时export RUBYLIB=/home/git/project/
它不再找到帮助文件。我认为ruby应该搜索我提供的整个路径,而不仅仅是提供的最外层目录?这是考虑它的正确方法吗?如果没有,我怎么能这样做RUBY将搜索所有子目录及其子目录等?
谢谢,
罗宾
答案 0 :(得分:5)
与PATH
类似,您需要明确指定要在其下查找库的目录。但是,这不包括任何子目录,因此您还需要列出任何子子目录,并用冒号分隔它们。
例如:
export RUBYLIB=/home/git/project:/home/git/project/app/helpers
答案 1 :(得分:5)
正如buruzaemon所提到的,Ruby不会搜索子目录,因此您需要在搜索路径中包含所需的所有目录。但是,您可能想要做的是:
require 'app/helpers/output_helper'
这样,您不依赖于以某种方式设置的RUBYLIB
环境变量。当您将代码部署到生产环境或与其他人协作时,这些小依赖关系可能会导致烦人的调试会话。
另外,作为旁注,您可以将.
指定为搜索路径,而不是使用机器特定的绝对路径。