Chartkick,line_chart(非系列)数据与数组中的哈希

时间:2015-12-09 14:39:09

标签: ruby-on-rails ruby ruby-on-rails-4 sequel chartkick

我有以下查询,这是一个使用Sequel的.fetch方法的原始SQL(希望我可以使用续集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中渲染折线图。

1 个答案:

答案 0 :(得分:1)

你需要这样的东西:

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]]