10

Rubyのrequireコマンドは正確にどのように機能しますか? 同じディレクトリにある次の 2 つのファイルでテストしました。

test.rb

require 'requirements'
square(2)

要件.rb

def square(x)
    x*x
end

しかし、ファイル「test.rb」および「requirements.rb」と同じディレクトリにいるときに ruby​​ test.rb を実行すると、エラーが発生します。

/usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- requirements (LoadError)
from /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from test.rb:1:in `<main>'

これは、requirements.rb ファイルが見つからないことを意味すると思います。しかし、それは test.rb と同じディレクトリにあります! これをどのように修正しますか?

よろしくお願いします。このような初心者の質問をお詫び申し上げます。

4

2 に答える 2

34

IIRC、ruby 1.9には、LOAD_PATHへの現在のディレクトリ('。')が含まれていません。次のいずれかを実行できます。

# specify relative path
require './test1'

# use relative method
require_relative 'test1'

# add current dir to LOAD_PATH 
$LOAD_PATH.unshift '.'
require 'test1'
于 2013-01-10T09:29:49.467 に答える
3

私もRubyの仕組みを学び始めたばかりなので、これが役立つかどうかは完全にはわかりません. しかし、require の代わりに require_relative を試してみてください。うまくいくと思います。
私の知る限り、Ruby ライブラリでの検索が必要です。

于 2013-01-10T09:30:38.277 に答える