Я хочу сохранить отдельные значения для каждого класса вместе с его унаследованными классами и хочу, чтобы эти значения изначально были []
. Поэтому я подумал об использовании переменных класса экземпляра, поскольку они не являются общими для всей цепочки наследования:
module Foo
def self.included(base)
base.class_eval do
@foos = []
end
base.extend ClassMethods
end
module ClassMethods
attr_reader :foos
end
end
, который я включаю в другой класс, имеющий дочерние классы
class Bar
include Foo
end
class Baz < Bar
end
Bar.foos # []
Baz.foos # nil
Итак, мой вопрос Каков наилучший способ иметь значение Baz.foos
, чтобы изначально []
вместо nil
динамически без открытия дочернего класса?
Я пытался использовать переменные класса вместо переменных класса экземпляра, но тогда все классы будут совместно использовать одну и ту же копию переменной класса @@foos
Спасибо