这似乎是一件简单的事情,但我不能理解它。
一个scorecard有一个skills_development,它有很多training_programs,它有很多participants。每个参与者都有一个名为training_facility_cost的属性,我需要将其提升一级,并找出整个training_program的设施成本。
因此,对每个子部分的所有facility_cost属性求和。解决这个问题的最好方法是什么?我应该在sql查询中这样做,还是使用嵌套块会更有效率。
就像这样
s.skills_development.training_programs.each do |tp|
costs = []
tp.participants.each {|p| costs << p.training_facility_cost}
costs.inject(:+)
end尽管我得到了最好的结果
NoMethodError: undefined method `+' for nil:NilClass,我认为这是因为它们的属性都有null。所以它不算为零??
有人知道如何快速简单地完成这项工作吗??
发布于 2013-07-09 16:21:48
试试下面这样的东西
skills_development.participants.to_a.sum { |p| p.training_facility_cost }https://stackoverflow.com/questions/17543270
复制相似问题