是否可以从一组对象中获取嵌套哈希?我希望按日期和小时嵌套对象
基本上我想做点什么:
Notification.all.group_by{ |notification| notification.created_at.to_date }.group_by{ |notification| notification.created_at.time.hour }
这一切都可能吗?我想最终得到像
这样的结构{date: {time: [objects], time: [objects]}, date: {time: [objects], time: [objects]} }
我想这样做来渲染一个表,比较按日期/时间分组的多个数据集(欢迎其他建议实现这一点)我试图达到类似于d3.nest()的效果
答案 0 :(得分:0)
这应该可以解决问题:
result = Notification.all.group_by { |item|
item.created_at.to_date
}.map { |date, notifications|
[date, notifications.group_by { |item| item.created_at.to_time.hour }]
}
这将返回一个哈希数组,但是如果您使用的是Ruby 2.x,则可以将其转换为使用Hash[result]
的哈希哈希值,或者使用result.to_h
哈希值。