array.group_by {|x| x['type']}
или ако искате символните ключови неща, можете дори
array.group_by {|x| "type_#{x['type']}".to_sym}
Мисля, че това най-добре изразява „Така че по същество всеки масив от хешове ще бъдат групирани по стойността на своя тип ключ и след това се връща като хеш с масив за всеки тип ", дори ако напусне :type
ключ сам в изходните хешове.