的情況下我有一個類,如下所示:紅寶石:訪問類常數
class Foo
MY_CONST = "hello"
ANOTHER_CONST = "world"
def self.get_my_const
Object.const_get("ANOTHER_CONST")
end
end
class Bar < Foo
def do_something
avar = Foo.get_my_const # errors here
end
end
獲得一個const_get uninitialized constant ANOTHER_CONST (NameError)
假設我只是在做一些愚蠢的在儘可能紅寶石範圍去。我正在測試此代碼的機器上使用Ruby 1.9.3p0。
您希望在'Foo'上調用'const_get',而不是在'Object'上調用'const_get'。 'Foo'繼承自'Object',所以它會響應'const_get',但是你需要將消息發送給可以正確響應它的對象 - 在這種情況下是'Foo',因爲這是對象const被定義。 –
@ChrisHeald恰到好處!我可以把它放在我的答案中,就像你已經解釋過的,或者讓它自己評論一下? :) –