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