2015-04-13 5 views
0

У меня есть массив хешейКак сгруппировать по массиву хешей

и мне нужно уметь их группировать по пользователям.

 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, 
     ... 
     } } 

У меня возникли проблемы с созданием группы в массиве.

Я попытался сделать shipments = order.shipments.group_by { |shipment| shipment[:user_id] }.count

, но это всегда возвращает 1, когда я знаю, что есть 2 пользователей здесь Спасибо за всю помощь

ответ

3

Вы можете просто сделать следующим образом:

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)} } 
+0

Спасибо, я ценю помощь – MZaragoza

Смежные вопросы