Тот факт, что house['windows']
является элементом в хэше, уже является чем-то вроде красной сельди, поэтому я буду использовать windows
в качестве переменной, ссылающейся на хеш.
Установите значение по умолчанию дляхеш windows
, так что любому несуществующему ключу присваивается значение массива:
windows = Hash.new {|hash, key| hash[key] = [] }
Теперь вы можете автоматически добавлять (<<
) к новым хеш-элементам.
windows['floor_1'] << 'north_side'
windows # => {"floor_1"=>["north_side"]}
В вашем конкретном случае замените windows
на house['windows']
.
РЕДАКТИРОВАТЬ
Как указано в комментариях, это поведение можно добавитьк уже созданному хешу:
windows.default_proc = proc {|hash, key| hash[key] = [] }