【发布时间】:2015-03-18 10:43:05
【问题描述】:
Rails 有一个名为class_attribute 的类扩展,它允许继承类实例变量。这适用于不可变对象,例如String,但不包含可变变量:
class Base
class_attribute :options
self.options = {}
end
class SubClass < Base
end
Base.options # {}
SubClass.options[:foo] = "bar" # { foo: "bar" }
Base.options # { foo: "bar" }
问题是如何让子类拥有自己的options 副本而不在其主体中显式初始化它:
class SubClass < Base
self.options = {}
end
【问题讨论】:
标签: ruby-on-rails mutable class-variables