顶级目录中的require文件

时间:2012-03-17 11:42:09

标签: ruby require

这是我的项目结构:

/app
--/lib
----/porter.rb
--/spec
----/porter_spec.rb

在文件porter_spec.rb中,我有include指令:

require '../lib/porter' 

现在我正在尝试运行测试:

cd app
rspec

并收到错误:

C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- ../lib/porter (LoadError)
        from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Dropbox/development/myprojects/lj-parser/spec/porter_spec.rb:3:in `<top (required)>'

如何在lib文件夹中要求文件?

2 个答案:

答案 0 :(得分:5)

显然,你现在的目录不是你想象的那样。

你应该使用require_relative(ruby 1.9 +):

require_relative '../lib/porter'

答案 1 :(得分:3)

在ruby1.9中,您可以使用:

require_relative '../lib/porter'

在ruby1.8或更高版本中,您可以使用:

require File.expand_path("../lib/porter", __FILE__)