Chartkick,line_chart(不是系列)数据,数组中有散列

Chartkick, line_chart (not series) data with hash in array

我有以下查询,它是使用 Sequel 的 .fetch 方法的原始 SQL(希望我可以为此使用 sequel DSL)

Radacct.fetch("SELECT `acctstarttime` AS `date`, count(*) AS `count` FROM `radacct` WHERE (`calledstationid` = ?) GROUP BY DATE(acctstarttime)", 'C8-60-00-95-4B-0F')

结果数据为:

[{"date":"2015-11-08T19:59:57.000+08:00","count":4},{"date":"2015-11-09T00:02:37.000+08:00","count":3}]

这是数组中的散列。什么chartkick gem的line_chart读取数据应该是这样的:

{"2015-12-09T03:31:25.000+08:00":1}

我不确定如何使用 .map 函数或 .collect 来展平和删除键(日期和计数),以便我可以在 chartkick 中正确呈现折线图。

你需要这样写:

array.collect{|i| [i[:date],i[:count]]}

你会得到这个:

array= [{"date":"2015-11-08T19:59:57.000+08:00","count":4},{"date":"2015-11-09T00:02:37.000+08:00","count":3}]
=> [{:date=>"2015-11-08T19:59:57.000+08:00", :count=>4}, {:date=>"2015-11-09T00:02:37.000+08:00", :count=>3}]
array.collect{|i| [i[:date],i[:count]]}
=> [["2015-11-08T19:59:57.000+08:00", 4], ["2015-11-09T00:02:37.000+08:00", 3]]