2011-12-27 53 views
0

相關聯。在我Taletid模型我有:Rails的HABTM - 如何調用方法上的模型

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循環。

但它需要在我不想要的pakke模型中調用一個名爲beregn_pakke的實例方法。它應該在Taletid模型中使用​​方法。

talei是我pakkes表中的一列。

我想在Taletids模型中使用​​方法。訪問給定pakke的任何列。

如何在Taletid模型中使用​​方法進行關聯的pakkes?

回答

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做的工作之一。

+0

那麼我如何在Taletid模型中爲每個關聯的pakke使用beregn_pakke(x)? – 2011-12-27 01:34:22

+0

@Railsbeginner第一個例子* *使用它 - 你說'calculate_total'也在'Taletid'模型中。 – 2011-12-27 01:38:15

+0

我需要使用每個pakke的Taletid模型中的beregn_pakke(x),因爲我正在做這個方法中的一些計算。然後將其添加到@total_price數組中。 – 2011-12-27 01:41:24

相關問題