Ruby on rails 如何在哈希数组中按分组

Ruby on rails 如何在哈希数组中按分组,ruby-on-rails,arrays,group-by,Ruby On Rails,Arrays,Group By,我有一个哈希数组 我需要能够按用户对它们进行分组 order = Order.find(options[:order_id]) shipments = order.shipments.select {|shipment| shipment["roundtrip_shipment"] == nil }.collect {|o| { id: o.id, user_id: o.user_id, ... } } 我在数

我有一个哈希数组

我需要能够按用户对它们进行分组

      order = Order.find(options[:order_id])
      shipments = order.shipments.select {|shipment| shipment["roundtrip_shipment"] == nil }.collect {|o| {
        id: o.id,
        user_id: o.user_id,
        ...
      } }
我在数组中创建group by时遇到一些问题

我已尝试按{| shipping | shipping[:user_id]}.count执行
shippings=order.shippings.group_

但当我知道这里有2个用户时,它总是返回1
感谢所有帮助

您只需执行以下操作:

order = Order.find(options[:order_id])
shipments = order.shipments.where.not(roundtrip_shipment: nil).group_by(&:user_id).collect {|x,y| {x => y.map(&:id)} }

您可以简单地执行以下操作:

order = Order.find(options[:order_id])
shipments = order.shipments.where.not(roundtrip_shipment: nil).group_by(&:user_id).collect {|x,y| {x => y.map(&:id)} }

您可以简单地执行以下操作:

order = Order.find(options[:order_id])
shipments = order.shipments.where.not(roundtrip_shipment: nil).group_by(&:user_id).collect {|x,y| {x => y.map(&:id)} }

您可以简单地执行以下操作:

order = Order.find(options[:order_id])
shipments = order.shipments.where.not(roundtrip_shipment: nil).group_by(&:user_id).collect {|x,y| {x => y.map(&:id)} }

谢谢我感谢你的帮助谢谢你的帮助谢谢你的帮助谢谢你的帮助谢谢你的帮助