Я, имеющие реальную борьбу с этим:Невозможно вызвать методы ребенка в модели метод
В student.rb:
def subject_avg
self.goals.each do |goal|
goal.subject_id
end
end
Это не «делать» что-нибудь - или я должен сказать он ничего другого не делать из
def subject_avg
self.goals.each do |goal|
goal.id
end
end
или
def subject_avg
self.goals.each do |goal|
goal.goal
end
end
независимо от того, что она возвращает массив целей, которые принадлежат к этой теме:
[
#<Goal id: 28, goal: "Do it on command", subject_id: 10, created_at: "2013-08-25 10:59:35", updated_at: "2013-08-25 10:59:35", default: nil>,
#<Goal id: 29, goal: "Make it chunky", subject_id: 10, created_at: "2013-08-25 10:59:35", updated_at: "2013-08-25 10:59:35", default: nil>,
#<Goal id: 30, goal: "Hit the mark", subject_id: 10, created_at: "2013-08-25 10:59:35", updated_at: "2013-08-25 10:59:35", default: nil>,
#<Goal id: 31, goal: "Puke and rally", subject_id: 10, created_at: "2013-08-25 10:59:35", updated_at: "2013-08-25 10:59:35", default: nil>
]
сначала я думал, что это просто не читал/не мог прочитать каждый блок по какой-то причине так просто проходил результат self.goals.each
(хотя, похоже, это то, что происходит). Однако, если я называю несуществующий метод, он выдает ошибку:
def subject_avg
self.goals.each do |goal|
goal.FFS_do_something!
end
end
возвращается
undefined method `FFS_do_something!' for #<Goal:0x000001064329f0>
если я ставлю то же каждый блок в представлении, это работает, как ожидалось (я могу позвонить методы по «цели» в каждом блоке)