1

いくつかのモデルのビューから計算を行う必要があります。例:

class Teacher
  include Mongoid::Document

  has_many :students
end

class Student
  include Mongoid::Document
  belogns_to :teacher

  field gold_stars, type: Integer
  field silver_stars, type: Integer
  field bronze_stars, type: Integer
end

先生の見解で、gold_stars、silver_stars、bronze_starsの数を集計する必要があるとしましょう。ビューの値を集計する最もクリーンな方法は何ですか?after_updateコールバックを使用すると思いますが、もっと良い方法があるかどうかはわかりません。

アップデート

私が欲しいのは、先生が生徒全員が持っている金の星の数を表示し、次に銀、次に青銅を表示することです。

4

1 に答える 1

1

ここに解決策があります

teacher = Teacher.first
gold_stars = Student.where(:teacher_id => teacher.id).sum(:gold_stars)
silver_stars = Student.where(:teacher_id => teacher.id).sum(:silver_stars)
bronze_stars = Student.where(:teacher_id => teacher.id).sum(:bronze_stars)
于 2012-10-05T05:25:28.377 に答える