【发布时间】:2012-09-26 10:58:54
【问题描述】:
我有一个哈希子类,我通常想从另一个哈希初始化它的数据并使用它:
class ValidatedJson < Hash
@schema = {}
def initialize(hash = {})
super
JSON::Validator.validate!(@schema, hash, :validate_schema => true)
self.update(hash)
end
def [](key)
self.fetch(key)
end
end
但是,单独使用 self.update 时,任何嵌套哈希都将是 Hash 类型,而不是具有我的子类 ValidatedJson 的属性。有人知道确保这一点的快速有效方法吗?
【问题讨论】:
-
递归转换嵌入的哈希可能是你能做的最好的。
-
是的,这就是我最终做的......
标签: ruby inheritance hash