Здесь есть три модели: Цель, Студент и Семинар.Все они связаны с has_and_belongs_to_many.
Существует модель соединения ObjectiveStudent, которая включает столбцы «ready» и «points_all_time».Существует модель соединения ObjectiveSeminar, включающая столбец «приоритет».
Мне нужно собрать все цели, связанные с данным студентом, а также с данным семинаром.
Они также должны быть отмечены с «приоритетом» выше нуля на семинаре,Поэтому я думаю, что мне нужна эта строка:
obj_sems = ObjectiveSeminar.where(:seminar => given_seminar).where("priority > ?", 0)
Наконец, они также должны быть целями, когда ученик готов, но не набрал выше 7 баллов. Поэтому я думаю, что мне нужна эта строка:
obj_studs = ObjectiveStudent.where(:user => given_student, :ready => true).where("points_all_time <= ?", 7)
Есть ли способ собрать все цели, записи таблиц соединений которых присутствуют в обоих вышеупомянутых запросах?Обратите внимание, что ни один из списков не возвращает цели;они возвращают target_seminars и target_students соответственно.Моя конечная цель состоит в том, чтобы собрать цели, которые отвечают всем вышеперечисленным критериям.
Или я все это неправильно подхожу?
Дополнительный вопрос: я также хотел бы отсортировать цели по их приоритетности на данном семинаре.Но я боюсь, что это добавит слишком много к загрузке базы данных.Что вы думаете об этом?
Заранее благодарим вас за понимание.