0
ここで私の3つのモデルを考える:レール - スコープとfin_by_sql質問
class Classroom < ActiveRecord::Base
has_many :students
has_many :slideshows
has_many :grades
class Slideshow < ActiveRecord::Base
belongs_to :classroom
has_many :grades
class Grade < ActiveRecord::Base
belongs_to :slideshow
belongs_to :classroom
私はclassroom model
に必要なクエリを作るためにscope
を作成しました:
scope :result, lambda {
joins(:slideshows, :grades).
where("classrooms.id = slideshows.classroom_id AND slideshows.id = grades.slideshows_id ").
select("classroom.name, SUM (grades.english), SUM(grades.biology) ").
group("classroom.name ").
order("SUM(grades.english+grades.biology) DESC ")
}
疑問が私の中にいることですコントローラ私はこれを動作させることはできません。私は2つのことを試みました:
@variable = Classroom.result
@variable = Classroom.find_by_sql(:result)
最初のオプションはクエリのように動作しますが、結果を取得できません。 2番目のオプションは私のサーバーをシャットダウンします。どのように私はこれを達成することができますか?
ありがとうございます。
こんにちは。答えをありがとう。このクエリをコントローラから取り出してモデルに入れることはできません。 scopなど何とか使うことはできませんか? –