array.group_by {|x| x['type']}
o si quieres las cosas clave del símbolo, incluso podrías
array.group_by {|x| "type_#{x['type']}".to_sym}
Creo que esto expresa mejor "Entonces, básicamente, cada matriz de hashes sería agrupado por el valor de su clave de tipo , y luego devuelto como un hash con una matriz para cada tipo ", incluso si deja el :type
clave sola en los valores hash de salida.