Учитывая мои три модели здесь:
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
Я создал scope
, чтобы сделать запрос, который мне нужен в classroom model
:
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)
Первый вариант кажется, что запрос работает, но я не могу получить результаты.Второй вариант отключает мой сервер.Любая идея о том, как мне этого добиться?
Заранее спасибо.