Я пытаюсь использовать Highcharts в своем веб-приложении, но у меня возникают некоторые проблемы с приведением моих массивов в соответствие с выводом, необходимым для highcharts, по сути, для hightcharts требуется вывод в виде JS:
series: [{
name: 'person',
data: [1562, 873, 1457]
}, {
name: 'car',
data: [7323, 324, 1233]
}, {
name: 'SUV',
data: [832, 6232, 4432]
}]
Там, где каждый элемент в массиве данных в этом случае - новый день, моя проблема в том, что мои данные организованы немного по-другому, и попытка преобразовать мои данные в соответствие с этим была головной болью. в основном мой вывод выглядит так:
[
{:date=>"Sun, 10 Apr 2011", :object_types=>[
{:count=>4279, :class_name=>"person"},
{:count=>8785, :class_name=>"car"},
{:count=>2153, :class_name=>"SUV"}
]},
{:date=>"Sat, 09 Apr 2011", :object_types=>[
{:count=>12206, :class_name=>"person"},
{:count=>29095, :class_name=>"car"},
{:count=>7565, :class_name=>"SUV"}
]},
{:date=>"Fri, 08 Apr 2011", :object_types=>[
{:count=>4159, :class_name=>"person"},
{:count=>8043, :class_name=>"car"},
{:count=>1982, :class_name=>"SUV"}
]}
]
Так что, похоже, мне нужно сначала сгруппировать элементы сначала (в моем случае) :class_name
, а затем в пределах :count
по дням, как каждый элемент в data
.
У меня проблемы с нахождением "рубинового способа" сделать это элегантно, я не супер крут в манипулировании массивами и хэшами, как вы, вероятно, можете видеть, но могу помочь мне в достижении этой цели. путь ценится.
Во-вторых, я пытался выполнить это, используя group()
в своем запросе, но это не очень помогает, мысли? Еще одна вещь, которую мне нужно решить, это заполнить даты «0», если для этого нет записей ... но я остановлюсь на этом, я думаю.