我正在尝试从一组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
谢谢!
答案 0 :(得分:3)
您需要指定Servicio
方法应使用sum
的哪个属性,因为Servicio
类本身并未实现+
方法。
试试这个
total = servicio_by_id.sum(&:precio)
这会将每个Servicio
的{{1}}属性的值相加。