0

だから私は3つのクラスがあります:

MyModule::Base
MyModule::Artist
MyModule::Song

MyModule::Artistから継承するMyModule::Baseため、そのすべてのインスタンス メソッドにアクセスでき、次のように宣言されます。

module MyModule
  class Artist < MyModule::Base

そして、これはすべて期待どおりに機能します。MyModule::Songただし、次のように継承する3 番目のクラス ( ) を追加しようとすると、次のMyModule::Baseようになります。

module MyModule
  class Song < MyModule::Base

を取得しNameErrorます。「初期化されていない定数」。のようなMyModule::Baseものさえ存在しません!Ruby のクラス継承について何か基本的なことが抜けているのでしょうか、それとも何か他のものなのでしょうか?

ありがとう。

4

1 に答える 1

2

私はあなたのレポを見て、Baseモジュールを経由require_relativeで正しく要求してArtistいるのに、大ハンマーを使って でrequireナットを割っていることを発見しましたSong

システム全体baseに少しあるため、意図したローカルではなくロードされていEchonest::Baseます。一緒に行ってrequire_relative楽しんでください。

それが役立つことを願っています。

于 2013-02-10T13:08:09.320 に答える