I have a booking with a method
total which calculates the total price of the booking from the sum of all the prices of activities that belong to appointments. A booking has many appointments and the following seems to give the right answer, but it seems horrid. How can I improve this?
def total # TODO shouldn't this be a db query? total = 0 self.appointments.each do |appointment| unless appointment.activity.price.nil? total += appointment.activity.price.to_f end end total end