2016-02-28 6 views
0

Я пытаюсь сгруппировать таблицу своих событий за месяцы и диапазон, чтобы я мог представить ее на диаграмме (я использую драгоценный камень chartKick). События имеют start_date и end_date, поэтому, если событие начинается в феврале и заканчивается в феврале, оно будет считаться февральским событием, но если событие начнется в феврале и закончится в марте, оно будет считаться мартовским событием. Формат, который я хочу получить:Rails 4 - Диапазон по датам по месяцам

{"JAN" => 2, "FEB" => 3, "MAR" => 5, "APR" => 10, "MAY" => 5, "JUNE" = > 0, «JULY» => 12, «AUG» => 4, «SEPT» => 17, «OCT» => 8, «NOV» => 0, «DEC» => 3}

Право теперь я использую что-то очень простое, что не делает то, что я хочу:

<%= pie_chart Event.group(["DATE(created_at)"]).count %> 

Может ли кто-нибудь помочь мне получить правильный запрос?

благодаря

+0

вам это нужно: https://github.com/humzashah/convenient_grouper – Humza

+0

спасибо за подсказку! Я попытался: 'Event.group ({start_time: {Jan: Date.new (2016,1) .. Date.new (2016,1,31)}})', но я получаю: "# " –

+0

Потому что вы только сгруппировали их до сих пор. Вам нужно вызвать '.count' на этом объекте, как в вашем примере. – Humza

ответ

0

Благодаря @Humza, я, наконец, получил его, я сделал так:

<%= pie_chart Event.group({start_time: {Jan: Date.new(2016,1)..Date.new(2016,1,31), Fev: Date.new(2016,2)..Date.new(2016,2,29), MAR: Date.new(2016,3)..Date.new(2016,3,31), APR: Date.new(2016,4)..Date.new(2016,4,30), MAY: Date.new(2016,5)..Date.new(2016,5,31), JUN: Date.new(2016,6)..Date.new(2016,6,30), JUL: Date.new(2016,7)..Date.new(2016,7,31), AUG: Date.new(2016,8)..Date.new(2016,8,31), SEP: Date.new(2016,9)..Date.new(2016,9,30), OCT: Date.new(2016,10)..Date.new(2016,10,31), NOV: Date.new(2016,11)..Date.new(2016,11,30), DEZ: Date.new(2016,12)..Date.new(2016,12,31)}}).count %> 
Смежные вопросы