Semplificando ho un metodo che esegue una query su un activerecord in
due step: prima fa una where (in realtà parametrizzata) e poi fa dei
calcoli su un attributo :
def foo
res = Sale.where(product: 5, …)
res.sum(:turnover)
end
Anche il secondo step (dalla quale foglio ottenere un valore numerico) è
customizzabile, vorrei potere fare anche (ad esempio):
res.sum(:turnover) / res.sum(:taking)
Quello che mi viene in mente è passare un blocco, ovvero poter fare una
cosa tipo questa:
def foo(&block)
res = Sale.where(product: 5, …)
res &block
end
foo do |res|
res.sum(:turnover) / res.sum(:taking)
end
in cui la funzione da applicare al risultato della query viene passata
come blocco, ma non ho trovato modo di passare un blocco ad
activerecord…