私は通常、別のハッシュからデータを初期化したいハッシュ子クラスを持っており、これを使用しました:
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のみを使用すると、ネストされたハッシュは、子クラスValidatedJsonのプロパティを持つのではなく、Hash型になります。これを確実にするための迅速で効率的な方法を知っている人はいますか?