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]]
我有以下查询,它是使用 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]]