Rails组和对象的总和数组

生产has_many:production_lines, production_line所属项:项目, has_one项:配方, 配方has_many:recipe_lines, recipe_line归属于:item,

production_line and recipe line have attribute quantity. I need to group recipe_lines for a production by item, with quantity that equals to production_line.quantity * recipe_line.quantity

  def item_quantities
        array = production_lines.map do |p|
          p.item.recipe.recipe_lines.map do |r|
            {
              item_id: r.item_id,
              item_name: r.item.name,
              quantity: r.quantity * p.quantity
            }
          end
        end
        array.flatten(1).group_by { |p| p[:item_id] }
             .transform_values { |vals| vals.sum { |val| val[:quantity] } }
          end

返回:

item_quantities = {
1: 10,
2: 5
}

其中key是item_id,value是数量。值是正确的。

但是我想返回:

item_quantities = [
{
id: 1,
name: "Tomato",
quantity: 10,
},
{
id: 2, 
name: "Carrot",
quantity: 5
}
]

我应该如何更改解决方案以实现该目标?