Suming total spend

Hi

I have an application with a number of models. The one's I'm interested in are customers, who have appointments. Each appointment has a number of treatments associated.

I'm trying to calculate the total amount spent by the customer on treatments over all the appointments.

@cust = Customer.find(1) @cust.appointments[0].treatments.sum(:price)

The above works for just the first appointment found. But how to I get it to sum across all appointments?

I've tried something like:

@total = @cust.appointments.sum{|u| u.treatments.sum(:price)}

But to no avail.

Any help would be gratefully appreciated!

Darren

How about using sum conditions / includes to do it all in one SQL query. Something like:

@total = Treatment.sum(:price, :include => :appointment, :conditions => {'appointments.customer_id' => @cust.id})

David

Thanks!

That's done the trick perfectly.