11

別の ruby​​ ファイルを要求する ruby​​ ファイルを取得しようとしているのですが、気が狂いそうです。私のセットアップは次のとおりです

「/raid1/ruby-code/benchmark/」内の 2 つのファイル

コマンドランナー
ベンチマーク

この時点で Benchmarker がメイン プログラムであり、CommandRunner を要求したいと考えています。さまざまなことを試しましたが、どれも機能しません。以下は、私が Benchmarker の冒頭に置いたすべてのもののリストです。

「CommandRunner」が必要
「./CommandRunner」が必要です
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
「CommandRunner」が必要
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME))
「./CommandRunner」が必要です

また、require_relative を使用して上記の順列をすべて試しました。ファイルをemacs内のirbにロードしてみましたが、コマンドラインで試しました。irbのある時点で、一度ロードされます

「CommandRunner」が必要
そして、「./CommandRunner」に戻すまでロードし、その後もう一度ロードします。

私は実際にエラーを言いました

`require_relative': ロードするファイルがありません --
/raid1/ruby-code/benchmark/CommandRunner (LoadError)

これは、ファイルへの正しいパスです!

それ以来、ロードに切り替えましたが、それは機能しているようです。奇妙な動作が見られますが、それは私だけかもしれません. ここで何が起こっているのか誰にも分かりませんか?

4

1 に答える 1

6

ファイルの名前は CommandRunner.rb ではなく、CommandRunner ですか? ruby ファイルの標準的な命名規則は、小文字とアンダースコアを使用することです。そのため、クラス名が CommandRunner であっても、ファイルは command_runner.rb となり、require 'command_runner' が機能するはずです。

于 2010-10-28T00:34:02.683 に答える