Вот
тут, вероятно, есть пример того, что вы хотите в итоге получить.
Стандартных базовых функций для решения данной задачи в Ruby - нет.
Рекурсивная функция, которая бегает по всему хэшу и ищет значения по заданному ключу. MonkeyPatch!!!class Hash
def find_all_values_for(key)
result = []
result << self[key]
self.values.each do |hash_value|
values = [hash_value] unless hash_value.is_a? Array
values.each do |value|
result += value.find_all_values_for(key) if value.is_a? Hash
end
end
result.compact
end
end