考虑此模型
User = has_many :grades (table: user_id)
Grade = has_many :subjects (table: grade_id, name)
Subject = has_many :values (table: subject_id,value)
User.find(:first, :include => {:grades =>{:subjects => :value}})
我如何选择所有成绩,然后主题并获得总科目值?
答案 0 :(得分:0)
如果你想获得主题价值(这是一个数字) 你可以做到
User.find(:first).grades.map(&:subjects).flatten.reduce(:+)
那应该选择第一个用户,然后给你一个他们所有等级的数组,然后将每个等级的主题映射到数组,然后展平数组,然后将所有值加在一起。