【问题标题】:Chartkick, line_chart (not series) data with hash in arrayChartkick,line_chart(非系列)数据与数组中的散列
【发布时间】:2015-12-09 14:39:08
【问题描述】:

我有以下查询,它是使用 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 中正确呈现折线图。

【问题讨论】:

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


    【解决方案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]]
    

    【讨论】:

    • 是的。这就是我要找的。我已经接受了这个答案。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2015-09-18
    • 2015-04-21
    • 2014-08-31
    • 2012-01-14
    • 2012-06-12
    相关资源
    最近更新 更多