模型中属性值的总和。 Rails 3

时间:2013-12-18 14:41:13

标签: ruby-on-rails ruby

我正在研究一个有很多属性的模型,有些是其他属性的总和。我想知道这是否是一种有效的方法,如果我应该了解性能问题。该模型大约有200个十进制字段,30个字段与其他字段相加...

这就是我所拥有的:

Class  FinancialDatum < ActiveRecord::Base 
  #---rest omitted

  before_save :totalize

  def totalize
    totalizable = [:total_1,:total2] #etc..
    totalizable.each do |t|
      unless totalizable_for(t).map{|m|self.send(m).present?}.include? false
        self[t] = (totalizable_for(t).map{|num| self.send(num)}).inject(0, :+)
     end
   end

    def totalizable_for(att)
    case att
      when :total_1
        [:debt_1, :debt_2, :deb_t_3]
      when :total_2
        [debt_4, debt_5]
      end
    end

end

编辑:

输入和输出非常简单,用户填写:debt_1 => 2, :debt_2 => 3, :debt_3 => 4,模型应保存:total_1 => 9

感谢。

0 个答案:

没有答案