2016-02-28 61 views
0

我試圖將我的Events表組合在我的月份和範圍內,以便我可以在圖表中呈現它(我使用chartKick gem)。活動有一個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 %>