可能重复:
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
Rubyrequire
call fails on custom code
我正在跑步:
假设我在目录中有以下文件:
require 'b'
puts message_from_b
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安装有关吗?
答案 0 :(得分:2)
文件b.rb
不在您的加载路径中。将b.rb
目录添加到您的加载路径
$LOAD_PATH.unshift(File.dirname(__FILE__)) # assuming it's the current directory
或使用
require_relative 'b'