Wpis z mikrobloga

#ror #rubyonrails #ruby #programowanie
Mirki mam pytanie.

Wykorzystuję "groupby" by pogrupować zamówienia po dniach (z postgresql). Teraz chciałbym wyciągnąć jakoś sumę zakupów na dzień, by było to widoczne przy podsumowaniu całego dnia. Staram się to zrobić tak, ale nie działa:

@orders.each do |day, orders|
orders.sum(&:total)
end

Starałem się też użyć
orders.to
a.map { |h| h[:total] }.sum
oraz
orders.to_a.inject { |sum, h| sum += h[:total] }
TOTAL to pole, w którym przechowuje zakupy.

Chciałbym dostać taki wynik

21 May 2015
Total : 123 (powiedzmy jest to suma 2 zakupów tego dnia za 100 i 23zł).
22 May 2015
Total: 0
23 May 2015
Total: 23
  • 4
  • Odpowiedz
@brissenden: Dzięki. W końcu na stack overflow dali mi podobną odpowiedź.

@orders = current_user.orders
.where(created_at: time.beginning_of_month .. time)
.group('created_at::date')
.sum(:total)

createdat to stamp, dlatego mi się sypało.
  • Odpowiedz