Need help cleaning up a model method

Hi,

I need a little help cleaning up the method below. In my .NET days I
would have let this pass, but I am trying to be a good ruby citizen by
keeping things simple.

This is from a seller model which has many vehicles:

def total_retail_price
if @@total_retail_price.nil?
@@total_retail_price = self.vehicles.sum(:retail_price)
@@total_retail_price = 0 unless @@total_retail_price
end
@@total_retail_price
end

If I didn’t have to worry about the seller having 0 vehicles I could
just use:

def total_retail_price
@@total_retail_price ||= self.vehicles.sum(:retail_price)
end

Does anyone have any suggestions on how I can fix improve on this?

Thanks,
GiantCranes

Apologies, I meant to post this in the Rails group.

what about this?

def total_retail_price
@@total_retail_price ||= self.vehicles.sum(:retail_price) || 0
end

Thanks to you both for your help

On 8/14/07, Giant C. [email protected] wrote:

if @@total_retail_price.nil?
@@total_retail_price ||= self.vehicles.sum(:retail_price)
end

Does anyone have any suggestions on how I can fix improve on this?

sum should be zero for no vehicles though, shouldn’t it?

Thanks,