Вы хотите сделать что-то подобное?
all.group_by(&:class)
Который сгруппирует объекты в массиве по имени класса
РЕДАКТИРОВАТЬ для комментария
all.group_by(&:class).each do |key, group|
group.each{|item| puts item}
end
Ключ - это элемент группировки, а obj - это коллекция для ключа, поэтому он будет проходить по каждой группе в группе и перечислять объекты в этой группе
Также вы можете довольно легко сортировать по группам
all.group_by(&:class).each do |key, group|
group.sort_by(&:attribute).each{|item| puts item}
end