2015-08-16 134 views
-3

我有一组记录被活动记录查询返回。我需要通过这些莫名其妙地重复,以建立哈希排序的,看起来像数组:红宝石阵列的散列

[ 
    { '15/01/2013': 3 }, 
    { '24/051/2012': 1 }, 
    { '08/07/2015': 22 } 
] 

返回将在其第二次和22条记录3条记录的第1个记录的形式记录为第三。我基本上需要一种方法将其转换为上面的简单哈希。

这里是我的DB输出的例子:

[ 
    { 
     "item_id": 21728, 
     "id": 31731, 
     "notes": "sample", 
     "date": "2014-09-12", 
     "created_at": "2015-08-13T15:16:06.074Z", 
     "updated_at": "2015-08-13T15:16:06.074Z" 
    }, 
    { 
     "item_id": 21728, 
     "id": 31732, 
     "notes": "sample", 
     "date": "2014-09-12", 
     "created_at": "2015-08-13T15:16:06.104Z", 
     "updated_at": "2015-08-13T15:16:06.104Z" 
    }, 
    { 
     "item_id": 21728, 
     "id": 31733, 
     "notes": "sample", 
     "date": "2014-09-13", 
     "created_at": "2015-08-13T15:16:06.112Z", 
     "updated_at": "2015-08-13T15:16:06.112Z" 
    } 
] 
+2

所以,也许你可以告诉我们一个查询和输出? –

+0

@Зелёный好的,增加了我的数据库输出。谢谢 – rctneil

+1

这是'json'。在Ruby中'json!= hash' –

回答

0

比方说,你的数据库的结果存储在名为结果的数组。

results.group_by(&:date).map{|k,v| {k => v.count}} 

这首先根据日期对您的DB结果进行分组,然后计算每个日期对应的对象数量。