RUBYLIB环境路径

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将搜索所有子目录及其子目录等?

谢谢,

知更鸟

bur*_*mon 5

与此类似PATH,您需要明确指定要在其下查找库的目录.但是,这不包括任何子目录,因此您还需要列出任何子子目录,并用冒号分隔它们.

例如:

export RUBYLIB=/home/git/project:/home/git/project/app/helpers
Run Code Online (Sandbox Code Playgroud)


Pau*_*nia 5

正如buruzaemon所提到的,Ruby不会搜索子目录,因此您需要在搜索路径中包含所需的所有目录.但是,您可能想要做的是:

require 'app/helpers/output_helper'
Run Code Online (Sandbox Code Playgroud)

这样,您不依赖于RUBYLIB以某种方式设置的环境变量.当您将代码部署到生产中或与其他人协作时,这些小依赖项可能会导致烦人的调试会话.

另外,作为旁注,您可以指定.搜索路径,而不是使用机器特定的绝对路径.