тип отношения в ассоциации многие ко многим

у меня есть много ко многим ассоциациям между двумя моделями в моем проекте, но я хочу указать тип связи между ними.

что-то вроде этого: у нас есть Учителя и Классы, у каждого Учителя много Классов и у каждого Класса много Учителей, мы можем создать отношение Преподавание, если хотим использовать Корыто.

например, учитель преподает математику в одном классе, а тот же учитель преподает физику в другом классе, есть ли способ сделать что-то подобное в activerecord, и если есть много способов сделать это, какой из них лучше всего? с участием?

изменить: я пробовал этот метод, и я не знаю, является ли это лучшей практикой:

Class Teacher < ActiveRecord::Base
    has_many :classrooms, through: :teachings
  end

  Class Teaching < ActiveRecord::Base
    belongs_to :teachers
    belongs_to :classrooms
  end

  Class Classroom < ActiveRecord::Base
    has_many :teachers, through: :teachings
  end

моя идея заключается в том, чтобы вместо использования обучения: я буду использовать другие модели (например, математика, физика ...), которые наследуются от модели обучения, могу ли я добавить тип в ассоциацию обучения (используя STI в таблице ассоциаций)? и как я могу это реализовать? или я просто добавляю атрибут в Teaching и устанавливаю его вручную вместо использования STI? что лучше всего сделать?


person Abdelkrim Tabet Aoul    schedule 22.02.2017    source источник


Ответы (1)


похоже, вы могли бы использовать другую таблицу под названием предметы. Это позволило бы создать отчет, показывающий, какой учитель (teacher_id) в каком классе (classroom_id) преподает какой предмет.

person Tom Connolly    schedule 22.02.2017
comment
я не очень понимаю ваш совет - person Abdelkrim Tabet Aoul; 22.02.2017