0

私はいくつかのRubyクラスを書きました。ただし、別のディレクトリからアクセスしようとすると、次のエラーが発生します。

uninitialized constant Main::AppVersion

ディレクトリ構造は次のようになります。

home --> a --> app_version.rb
home --> b --> c --> lib --> main.rb (and other classes)

「lib」内のすべてのものはお互いを見ることができます。ただし、app_version にアクセスしようとすると失敗します。$LOAD_PATH にアプリ バージョンへのパス (home/a) を追加しました。したがって、そこから利用できるはずです。他のクラスも「要求」しようとしましたが、そうすると次のエラーが発生します。

LoadError: no such file to load -- AppVersion

ここで私が間違っている可能性があることについてのアイデアは高く評価されます。ありがとう!

4

4 に答える 4

2

require_relative を使用してみることができます:

require_relative '../../../a/app_version'
于 2014-07-29T13:50:49.500 に答える
0

エラーは次のとおりです。

LoadError: no such file to load -- AppVersion

だからrequire、ファイルを探していますAppVersion.rb。ファイル名はapp_version.rb. 次のようにロードしてみてください。

require 'app_version'

を設定した後$LOAD_PATH

于 2014-07-29T13:54:31.590 に答える
0

Main::AppVersion クラスを定義すると、メインフォルダー (つまり、main/app_version.rb)に存在するはずです。

したがって、$LOAD_PATH には依存しません。

于 2014-07-29T13:55:31.577 に答える