在我的Taletid模型中,我有:
def beregn_pakke(x)
@total_price << x.talei
end
def calculate_total(tal, sms)
@total_price = []
self.pakkes.each{|pakke| pakke.beregn_pakke(pakke)}
end
pakkes和taletids之间有一个HABTM。
问题在于:
self.pakkes.each{|pakke| pakke.beregn_pakke(pakke)}
我想为任何关联的pakke创建一个使用beregn_pakke(x)
的循环。
但它要求在pakke模型中使用名为beregn_pakke的实例方法,这是我不想要的。它应该使用Taletid模型中的beregn_pakke(x)
方法。
talei
是我的pakkes表格中的一栏。
我希望能够使用Taletids模型中的beregn_pakke(x)
方法。访问给定pakke的任何列。
如何在Taletid模型中使用beregn_pakke(x)
方法来处理相关的pakkes?
答案 0 :(得分:1)
def calculate_total(tal, sms)
@total_price = []
self.pakkes.each { |pakke| beregn_pakke(pakke) }
end
当您撰写pakke
时,您在每个pakke.beregn_pakke(pakke)
上明确地将其命名为。
那就是说,考虑像(未经测试的):
def calculate_total(tal, sms)
@total_price = pakkes.collect { |p| p.talei }
end
或其中一个sum
方法,它们将通过SQL完成工作。