update_all con un método

Digamos que tengo un modelo:

class Result < ActiveRecord::Base
  attr_accessible :x, :y, :sum
end

En lugar de hacer

Result.all.find_each do |s|
  s.sum = compute_sum(s.x, s.y)
  s.save
end

asumiendocompute_sum es un método disponible y realiza algunos cálculos que no se pueden traducir a SQL.

def compute_sum(x,y)
  sum_table[x][y]
end

¿Hay alguna forma de usarupdate_all, probablemente algo como:

Result.all.update_all(sum: compute_sum(:x, :y))

Tengo más de 80,000 registros para actualizar. Cada registro enfind_each crea su propioBEGIN yCOMMIT consultas, y cada registro se actualiza individualmente.

¿O hay alguna otra forma más rápida de hacer esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta