总结不同模型中的数字

时间:2011-10-05 13:25:46

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有两个模型投票和选项,每个模型都有“总数”和“数量”列。     (投票has_many:选项)

我想最初这样实现:

  

Option.quantities.each {| quantity |总+ =量}

     

Vote.total =总

如何实现?

1 个答案:

答案 0 :(得分: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时都会计算并保存投票总数。