• 締切済み

【Ruby】require について

あるディレクトリでirbを起動して、require 'hoge'とした時にtrueやfalseが返ってくる。 つまり、'hoge' というライブラリはロードされている思います。 しかし、あるディレクトリ内のrbファイルで、require 'hoge' と記述してrbファイル実行すると'LoadError: cannot load such file'とエラーが出ます。 kernel_require.rb内でエラーが起きているようなのですが、何か参考となるHPやアドバイスがありましたらよろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

> 同様のエラーが出てしまいました。 irb -rcapybara/polergeist ではエラーが出ないんですよね? そうなると、irbとrubyで違うrubyが動いているということでしょうか。 OSが書いてないですが、Linuxだと仮定すると、 >記述してrbファイル実行すると の実行の方法は具体的にどうやっていますか? また、1行目には何と書いていますか? type irb と、 type ruby で、irbとrubyの存在するディレクトリは同じですか? type gem はどうですか?

0nce-19
質問者

補足

Mac OS X です。 本当に申し訳ありませんが、今一度irbでrequireしたところ、LoadErrorが発生しまして 成功したときと同じ手順を踏んだのですが読み込めませんでした。 ディレクトリを調べると、 /usr/bin/irb /usr/bin/ruby /usr/bin/gem というようになっています。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

ruby -rcapybara/polergeist -e 1 でどうですか? それでエラーにならないようなら、スクリプトの記述の仕方が悪いと思われます。 スクリプトをそのままコピペしてください。少なくとも、1行目からそのrequire行まで省略せず。

0nce-19
質問者

補足

同様のエラーが出てしまいました。

回答No.1

rubyバージョンなども教えていただければ更に確認が進むと思いますが、エラーメッセージから予測するとロードパス上に存在しないものと思います。あるディレクトリだとうまくいくケースは、例えば、カレントディレクトリに、hogeがいるかもしれません。 まずはhttp://i.loveruby.net/ja/rhg/book/load.html等を参考に、ロードパスを確認されることをオススメします。

0nce-19
質問者

補足

情報の不備申し訳ありません。 Ruby のバージョンは1.9.3や2.2.0,2.2.1など色々試したのですが、ダメでした。(前はたまたまバージョンを2.2.1から1.9.3にすると出来ました) 読み込むライブラリは、'capybara'でして、'capybara/polergeist'(これが'hoge'にあたる)が読み込めず困っております。 $LOAD_PATHを確認したところ、capybara-2.4.4はパス上にあり、irbからでもrbファイルからも読み込めています。

関連するQ&A