【发布时间】:2016-11-23 10:26:15
【问题描述】:
假设我有一个这样的 Activerecord 结果:
order.order_numbers
返回ActiveRecord_Associations_CollectionProxy
=> [#<OrderNumber id: 53425, Order_number: "01100", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:20:36">,
#<OrderNumber id: 53426, Order_number: "04503", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">,
#<OrderNumber id: 53427, Order_number: "011004", Order_number_id: 5391, Order_number_status_id: 2, comment: nil, updated_at: "2016-11-18 16:19:49">,
#<OrderNumber id: 53428, Order_number: "004505", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">,
#<OrderNumber id: 53429, Order_number: "4506", Order_number_id: 5391, Order_number_status_id: 2, comment: nil, updated_at: "2016-11-18 16:19:49">,
#<OrderNumber id: 53430, Order_number: "4507", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">]
注意Order_number_status_id,其中1 表示打开,2 表示关闭。
如果我想根据“关闭”状态将其拆分并将结果输出到单独的数组中,该怎么做?我只想将未结订单放入自己的数组中,但每次从封闭数字移动到开放数字时都会启动一个新数组。
在上面的例子中,结果是
Array_1 将包含 id 53425 和 53426
Array_2 将包含 id53428
Array_3 将包含 id 53430
因此它会将其拆分为 3 个不同的散列或数组,这些散列或数组仅包含未结订单号,它们都将位于一个数组中。
[[#<OrderNumber id: 53425, Order_number: "01100", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:20:36">,
#<OrderNumber id: 53426, Order_number: "04503", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">,], [<OrderNumber id: 53428, Order_number: "004505", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">], [<OrderNumber id: 53430, Order_number: "4507", Order_number_id: 5391, Order_number_status_id: 1, comment: nil, updated_at: "2016-11-18 16:19:49">]]
我愿意接受有关输出格式的建议。
【问题讨论】:
标签: ruby-on-rails arrays