При проверке связанных отношений, после того как создается экземпляр

У меня есть схема где:

Студенты

  • has_and_belongs_to_many: курсы
  • has_many: классы: зависимый =>: уничтожить
  • has_many: присвоения: через =>: классы

Курсы

  • has_many: присвоения: зависимый =>: уничтожить
  • has_and_belongs_to_many: студенты

Присвоения

  • belongs_to: курс
  • has_many: классы: зависимый =>: уничтожить
  • has_many: студенты: через =>: классы

Классы

  • belongs_to: студент
  • belongs_to: присвоение

Я хотел бы добавить функциональность, посредством чего, если класс добавляется и студент не принадлежит курсу, которому принадлежит присвоение класса, затем эти отношения сделаны. Какие-либо предложения относительно лучшего способа сделать это? grades_courses таблица не имеет своей собственной модели, это должно будет быть сделано?

Друг предложил использовать after_create, но я не знаю, как передать параметры этому.

1
задан Jack 22 February 2010 в 19:28
поделиться

1 ответ

Как насчет наблюдателя по оценкам? Примерно так

class GradeObserver < ActiveRecord::Observer

  def after_create(grade)
    unless grade.assignment.course.students.include?(grade.student)
      grade.assignment.course.students << grade.student 
    end
  end

end
2
ответ дан 3 September 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: