こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【Ruby】require について

あるディレクトリでirbを起動して、require 'hoge'とした時にtrueやfalseが返ってくる。
つまり、'hoge' というライブラリはロードされている思います。

しかし、あるディレクトリ内のrbファイルで、require 'hoge' と記述してrbファイル実行すると'LoadError: cannot load such file'とエラーが出ます。

kernel_require.rb内でエラーが起きているようなのですが、何か参考となるHPやアドバイスがありましたらよろしくお願いします。

投稿日時 - 2015-05-18 12:27:38

QNo.8977299

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

irb -rcapybara/polergeist ではエラーが出ないんですよね?
そうなると、irbとrubyで違うrubyが動いているということでしょうか。

OSが書いてないですが、Linuxだと仮定すると、

>記述してrbファイル実行すると
の実行の方法は具体的にどうやっていますか?
また、1行目には何と書いていますか?

type irb
と、
type ruby
で、irbとrubyの存在するディレクトリは同じですか?
type gem
はどうですか?

投稿日時 - 2015-05-20 00:16:38

補足

Mac OS X です。

本当に申し訳ありませんが、今一度irbでrequireしたところ、LoadErrorが発生しまして
成功したときと同じ手順を踏んだのですが読み込めませんでした。

ディレクトリを調べると、

/usr/bin/irb
/usr/bin/ruby
/usr/bin/gem

というようになっています。

投稿日時 - 2015-05-20 07:38:11

ANo.2

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

投稿日時 - 2015-05-18 22:57:19

補足

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

投稿日時 - 2015-05-19 10:55:13

ANo.1

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

投稿日時 - 2015-05-18 14:30:11

補足

情報の不備申し訳ありません。

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ファイルからも読み込めています。

投稿日時 - 2015-05-18 19:50:56

あなたにオススメの質問