3
ルビの囲むモジュールへの参照はどうやって取得できますか?ルビの囲みモジュールへの参照を取得する
module Foo
@@variable=1
def variable
@@variable
end
class A
def somemethod
puts "variable=#{Foo.variable}" #<--this won't run, resolving Foo
# as the class instead of the module
end
end
class Foo
... # doesn't matter what's here
end
end
名前の混同によってこの問題が発生しました。名前を修正するのは簡単ですが、私は "正しい"方法はこれをルビーでやっているのだろうと思っています。これを実行しようとすると、Foo.variableをFoo :: Foo.variableとして解決しようとしているようですもちろん、これは失敗した外側のモジュールメソッドを参照する言語で簡単な方法があるはずのように思え
ありがとう。私を夢中にする。私はそれをしようとすると –
は私が取得: ' foo.rb:14:'のsomeMethodで ':未定義のメソッド '変数' fooの:31: foo.rbからモジュール(NoMethodError)トライ ' –
"'にメソッド変数を次のように宣言します: 'def self.variable' –
oesgalha