teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/05/25 15:48

投稿

rhiroe
rhiroe

スコア2352

answer CHANGED
@@ -2,16 +2,17 @@
2
2
  def index
3
3
  #棒グラフのラベルを取得
4
4
  @labels = [*6.days.ago.to_date..Time.zone.today]
5
+ hash = (6.days.ago.to_date..Time.zone.today).to_h { |day| [day, 0] }
5
6
 
6
7
  #カテゴリーの数だけ繰り返し実施
7
8
  @r1, @r2, @r3, @r4, @r5, @r6 = (1..6).map do |i|
8
- Record.reorder(nil).eager_load(bookshelf: :category)
9
+ datahash = Record.reorder(nil).eager_load(bookshelf: :category)
9
- .where(yyyymmdd:(6.days.ago.to_date)..(Time.zone.today))
10
+ .where(yyyymmdd:(6.days.ago.to_date)..(Time.zone.today))
10
- .where("categories.id=#{i}")
11
+ .where("categories.id=#{i}")
11
- .group("records.yyyymmdd")
12
+ .group("records.yyyymmdd")
12
- .order("categories.id")
13
+ .order("categories.id")
13
- .sum(:summinutes)
14
+ .sum(:summinutes)
14
- .values
15
+ hash.merge(datahash).values
15
16
  end
16
17
  end
17
18
  ```