У меня есть две модели: ScheduledCourse и ScheduledSession.
scheduled_course has_many scheduled_sessions
scheduled_session belongs_to scheduled_course
ScheduledCourse имеет виртуальный атрибут ...
def start_at
s = ScheduledSession.where("scheduled_course_id = ?", self.id).order("happening_at ASC").limit(1)
s[0].happening_at
end
... виртуальный атрибут start_at проверяет все ScheduledSessions, которые принадлежат ScheduledCourse, и выбирает самый ранний из них. Таким образом, start_at
- это дата начала первого сеанса.
Теперь мне нужно написать в контроллере, чтобы получить только те записи, которые начинаются сегодня и уходят в будущее. Также мне нужно написать еще один запрос, который получает только прошедшие курсы.
Я не могу сделать следующее, потому что start_at
- это виртуальный атрибут
@scheduled_courses = ScheduledCourse.where('start_at >= ?', Date.today).page(params[:page])
@scheduled_courses = ScheduledCourse.where('start_at <= ?', Date.today)
SQLite3::SQLException: no such column: start_at: SELECT "scheduled_courses".* FROM "scheduled_courses" WHERE (start_at >= '2012-03-13') LIMIT 25 OFFSET 0