为什么我不能让我的ruby要求正常工作?

时间:2012-06-08 11:25:42

标签: ruby require ruby-1.9

  

可能重复:
  Why does Ruby 1.9.2 remove “.” from LOAD_PATH, and what's the alternative?
  Require command not working within bash irb on Snow Leopard
  Ruby require call fails on custom code

我正在跑步:

  • OS X 10.6.8
  • RVM 1.12.3 with Ruby 1.9.3

假设我在目录中有以下文件:

a.rb

require 'b'
puts message_from_b

b.rb

def message_from_b
    "foo"
end

运行 a.rb 时出现以下LoadError:

  

/Users/Alex/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require' ;:无法加载此类文件 - b(LoadError)

但是,如果我将 a.rb 的第1行替换为require './b',则效果正常。

在查看其他人的Ruby代码时,似乎他们不需要指定当前目录,以便在同一目录中要求文件。

那么,为什么我必须这样做?这与我的RVM安装有关吗?

1 个答案:

答案 0 :(得分:2)

文件b.rb不在您的加载路径中。将b.rb目录添加到您的加载路径

$LOAD_PATH.unshift(File.dirname(__FILE__)) # assuming it's the current directory

或使用

require_relative 'b'