0

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 で折れ線グラフを適切にレンダリングできます。

4

1 に答える 1

2

次のようなものを入れる必要があります:

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]]
于 2015-12-09T15:02:21.170 に答える