0

重複の可能性:
なぜ Ruby 1.9.2 は「.」を削除するのですか? LOAD_PATHから、そして代替手段は何ですか?
Snow Leopard の bash irb 内で Require コマンドが機能しない
Rubyrequire呼び出しがカスタム コードで失敗する

私は走っています:

  • OS X 10.6.8
  • RVM 1.12.3 と Ruby 1.9.3

ディレクトリに次のファイルがあるとします。

a.rb

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のインストールと関係がありますか?

4

1 に答える 1

2

ファイルb.rbがロード パスにありません。b.rbのディレクトリをロードパスに追加するか

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

または使用

require_relative 'b'
于 2012-06-08T11:34:05.703 に答える