ルビーのモジュールレベルの変数を参照するのに何か問題があります。モジュール内のモジュールレベルの変数を参照しています
module M
@@a=1
def self.a
@@a
end
class A
def x
M.a
end
end
end
さて、この例では、私のために正常に動作しますが、それはモジュールが広がっている少し複雑コンテキスト(に失敗している:私は、内部で馬に言及しています。このような状況を、持っていると言いますコードの実行方法には影響しないはずです):M :: M(NoMethodError)の未定義メソッド `a '。
これはコンテキスト内のモジュールレベルの変数を参照する正しい方法ですか?よりシンプルな/慣用的な方法がありますか?