Как рассчитать баллы, используя SQL, а не ruby

У меня есть задача rake в моем приложении rails, которая вычисляет бонусы:

namespace :all_bonus do
 desc "all given bonuses"
 task given_bonuses: :environment do
   points = 0
   Bonus.find_each do |bonus|
     points += bonus.points
   end

   puts Bonus.count
   puts points
 end
end

Найдите, что каждый метод загружает память, и я хочу изменить ее с помощью SQL. Как мне это сделать?


person Damir Nurgaliev    schedule 22.12.2016    source источник
comment
Возможный дубликат Rails, как суммировать столбцы?   -  person Holger Just    schedule 22.12.2016


Ответы (1)


Попробуйте что-то вроде

Bonus.sum(:points)

Это переводит что-то вроде этого SQL

SELECT SUM(`bonuses`.`points`) FROM `bonuses`
person Ursus    schedule 22.12.2016