我试图跟踪超级数组中所有实例化的子类对象,以便我可以从超级调用一个方法来迭代它们。我想我快到了,但我不知道我错过了什么。目前,当我调用 super.my_array 时,它只返回一个空数组,所以我的初始化方法一定有问题。这是我到目前为止的抽象版本:
class Klass
attr_reader :my_array
@@my_array = []
def initialize
@@my_array << self if super.class == Klass
end
def self.iterate_over_sub
@@my_array.each { |x| x.sub_method }
end
def sub_method
puts "#{self.class} is being called by super"
end
end