模型导轨计算总价

时间:2014-03-09 20:49:31

标签: ruby-on-rails ruby model sum

我正在尝试从一组id计算总和。 当我只选择一个Servicio时它工作正常但在数组中它显示了这条消息:

    undefined method `+' for #<Servicio:0x9c14c5c>

Extracted source (around line #91):

88:         </div>
89:         <div class="large-3 columns">
90:           <strong><%= model_class.human_attribute_name(:total) %>:</strong></dt>
91:           <%= @recibo.total %>
92:         </div>
93:       </div>
94:     </div>

这是我的模型Recibo

class Recibo < ActiveRecord::Base
  attr_accessible :cajero, 
  :doctor_id, 
  :numero_recibo, 
  :paciente_id, 
  :total,
  :servicio_ids

  belongs_to :doctor
  belongs_to :paciente
  has_many :atencions
  has_many :servicios, :through => :atencions

  def total
    servicio_by_id = Servicio.find(servicio_ids)
    total = servicio_by_id.sum.precio
  end
end

谢谢!

1 个答案:

答案 0 :(得分:3)

您需要指定Servicio方法应使用sum的哪个属性,因为Servicio类本身并未实现+方法。

试试这个

total = servicio_by_id.sum(&:precio)

这会将每个Servicio的{​​{1}}属性的值相加。