2011-10-05 50 views
0

我有兩個模型投票和選項,每個都有「total」和「quantity」列。 (投票的has_many:選項)總結不同模型中的數字

我要開始實施這樣的:

Option.quantities.each {|數量|總+ =量}

Vote.total =總

如何實現??

回答

1

您是否要求提供替代實施?還是爲了別的?你可以做同樣的事情Enumerable::inject,例如:

class Vote < ActiveRecord::Base 
    has_many :options 
    def calculate_total 
    total = self.options.inject(0) { |sum, vote| sum += vote.quantity } 
    save! 
    end 
end 

這樣,在總投票計算並保存每個calculate_total被調用時。

+0

太棒了!我將它改爲「self.total = self.options .....」,它的工作原理!謝謝! – Jack