2011-10-05 52 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