Rails HABTM - Как вызвать метод для связанного в модели - PullRequest
0 голосов
/ 27 декабря 2011

В моей модели 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

Существует HABTM между pakkes и taletids.

Вот проблема:

self.pakkes.each{|pakke| pakke.beregn_pakke(pakke)}

Я хочу создать цикл, который использует beregn_pakke(x) для любого связанного pakke.

Но он вызывает метод экземпляра с именем beregn_pakke в модели pakke, который мне не нужен.Следует использовать метод beregn_pakke(x) в модели Taletid.

talei - это столбец в моей таблице pakkes.

Я хочу иметь возможность использовать метод beregn_pakke(x) в модели Taletids.Для доступа к любому столбцу для данного пакета.

Как использовать метод beregn_pakke(x) в модели Taletid для связанных pakkes?

1 Ответ

1 голос
/ 27 декабря 2011
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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...