我有幾類,從一個類繼承:我可以通過控制檯訪問實例中的類變量嗎?
class Bravo << Alpha
class Charlie << Alpha
阿爾法有一些類級別的變量:
class Alpha
@@terms
def initialize
...
@@terms ||= load_terms
end
end
OK,一切都很好,到目前爲止。但我想從控制檯訪問類級變量以進行故障排除。這可能嗎?我已經試過:
# inst is an instance of Bravo for example
inst.class.superclass:terms
[email protected]@terms
inst.class.superclass[:terms]
沒想到任何的,要真正發揮作用,只是抓住了救命稻草,因爲我無法找到任何問題的答案。我已經證實,類變量通過在那裏:
>> inst.class.superclass.class_variables
=> [:terms]
OK,我可以看到它們的存在,但有什麼辦法通過導軌控制檯直接訪問它們?
稍微好一點的辦法是使用':@@ terms'但你得到一個+1反正。 – 2012-02-14 22:23:36
@Sergio確實有效,哇,這很複雜。在Ruby中遇到一些非常複雜的東西時很奇怪 - 通常很簡單。在C#中,從超類訪問變量或從類訪問變量之間並沒有任何區別。 :/ – jcollum 2012-02-14 22:31:10
@jcollum:恩,這不是c#:)更新了答案。 – 2012-02-14 22:36:31