私はこれに本当に苦労しています:
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>
ビューに同じ各ブロックを配置すると、期待どおりに機能します(各ブロック内の「ゴール」でメソッドを呼び出すことができます)