在ruby

时间:2016-11-18 01:24:24

标签: ruby-on-rails ruby sorting hash

我有一个结构哈希:

{"time_period" => {product_id = val"}}

例如,

{"This Month"  =>{2414=>12, 2601=>12, 2604=>6, 2624=>12, 2628=>12,
                  2647=>24, 2652=>6, 2659=>18, 2709=>24},
 "Last Month"  =>{511=>12, 2266=>12, 2414=>24, 2601=>12, 2607=>36, 2609=>60,
                  2611=>6, 2626=>36, 2647=>36, 2659=>18, 2699=>24, 2709=>12},
 "Last 30 Days"=>{2414=>24, 2601=>12, 2604=>6, 2607=>12, 2609=>12, 2611=>6, 2624=>12,
                  2626=>12, 2628=>12, 2647=>36, 2652=>6, 2659=>24, 2699=>12, 2709=>24}}

我将其显示为一个表,其中时间段为列,每个product_id为一行,并带有来自散列的相应值。

如果用户想要按列排序该表#34;上个月"我该怎么做呢?所以我想要"上个月"数组位于表的顶部,然后是按其值排序的那些键。

我不想将其转换为数组,因为每个产品会有很多0值,如果我们增加时间段和产品,内存使用量会很大。

哈希是这样创建的:

overall_h = Hash.new 
timeperiods.each do |t| 
  overall_h[t] = Order.customer_filter(customer_id)
                      .valid_order.group_by_orde‌​r_products.sum_qty 
end

0 个答案:

没有答案