我有两个模型,观察和分数,其中分数属于观察,观察有很多分数。
我可以使用Observation.first.scores来检索属于第一次观察的分数集合。
我希望能够做的是在任意观察集合上调用.scores,例如@ observation.scores,并获得与所有这些观察相关的所有分数的集合。
我想我可以使用这样的东西...... all_scores = Array.new @ observation.each做|观察| observe.scores.each做|得分| all_scores.push得分 结束 端
但是
答案 0 :(得分:0)
这样的事可能有用:
Score.find(:all, :conditions => ["observation_id in (?)", @observations.collect(&:id)])
这会在@observations
数组中找到所有得分。
答案 1 :(得分:0)
您可以使用Array#map
:
@observations = Observation.all(:include => :scores)
# => [#<Observation>, #<Observation>...]
@all_scores = @observations.map { |o| o.scores }
# => [[#<Score>, #<Score>], [#<Score>, #<Score>, #<Score>]...]
这将为您提供一组数组。