次のモデルがあります: students 、 groups_by_student 、および groups 。
学生テーブルの行はcity_idなので、htmlテーブルを表示する必要があります
Total group1 group2 group3
city1 30 10 5 15
city2 2 0 0 2
city3 20 10 10 0
city4 5 0 5 0
city5 10 0 2 8
これは私がしたことです:
groups = Group.find([1,4,6]) #Array of groups id's
total = []
groups.each do |g|
total << Student.joins(:groups_by_students).where(:groups_by_students => {:group_id => g.descendants}).count(:group => :city_id)
end
#I'm using AwesomeNestedSet gem, so g.descendants gives group children.
したがって、都市IDをキーとして、学生の合計を値として含む3つのハッシュの配列がありますが、このデータをhtmlテーブルに表示する方法がわかりません。
各「合計」要素ごとにどのように反復できますか? または、この情報を取得する別の方法はありますか?
前もって感謝します
ハビエル
編集:
これは配列全体です
total = [
{city1 =>10, city3 => 10},
{city1 => 5, city3=>10, city4=>5, city5 => 2},
{city1 => 15, city2 => 2}
]
そして今、そのグループに値がない場合は、html テーブル内の td ラベルにそれぞれを配置する必要があります。