У меня есть «хэш-дерево», как это:Есть ли способ переместить «вверх» хэш-дерево в рубине?
dat = {
'building' => {'street' => 'High Street 10', 'people' =>[Person, Person]}
}
Человек может быть что угодно.
Итак, в моем коде я прямо обращаюсь к «зданию» так: dat['building']
, теперь есть способ как-нибудь пойти, вверх по дереву, чтобы получить доступ к {'building' => {...}}
, снова?
я в настоящее время есть функция, давайте мне получить доступ к любому из этих:
def info with_root = false
with_root ? dat : dat['building']
end #info
Это не выглядит преступно плохо (я думаю), но я надеюсь, что это красивый способ.
Спасибо!
Не имеет отношения к этому вопросу, но '' people '=> [Person, Person] 'на самом деле представляет собой массив классов, а не массив экземпляров людей. Кроме того, вы можете рассмотреть возможность использования символов, а не строк в качестве ключей. –
Я не вижу необходимости двигаться «вверх». У вас есть дескриптор верхнего уровня, переменная 'dat'. Из этого вы можете достичь любого «узла». –
@ закрыть избирателей: немного ли сломанная английская часть того, почему вы голосуете, чтобы закрыть? –