这似乎是一件简单的事情,但我无法弄明白。
scorecard
有skills_development
,其中有许多training_programs
,其中有participants
个s.skills_development.training_programs.each do |tp|
costs = []
tp.participants.each {|p| costs << p.training_facility_cost}
costs.inject(:+)
end
。每个参与者都有一个名为training_facility_cost的属性,我需要将其提升到一个级别,并找出整个training_program的设施成本。
总结每个子代理的所有facility_cost属性。解决这个问题的最佳方法是什么。我应该在SQL查询中执行此操作,还是使用嵌套块更有效。
类似
NoMethodError: undefined method `+' for nil:NilClass
尽管我得到了,但仍然有效
{{1}}
,我认为是因为它们都属性为null。所以它不算数为零??
任何人都知道如何快速简单地做到这一点?
答案 0 :(得分:1)
试试这样的东西
skills_development.participants.to_a.sum { |p| p.training_facility_cost }