Я создаю веб-приложение, которое состоит из школ, курсов, студентов и учителей.
В школе может быть много курсов, а в курсе один учитель и много учеников.
Проблема, с которой я сталкиваюсь, заключается в том, что один пользователь может быть учителем одного курса, но студентом другого курса (или даже студентом или преподавателем курса в другой школе).Я не хочу создавать модель для учителей и отдельную модель для студентов, потому что я хотел бы отслеживать всех своих пользователей в одном месте.Существует таблица регистрации, в которой указано, какие пользователи записаны на курс в качестве студентов.
Я хотел бы сделать что-то вроде следующего:
class School < ActiveRecord::Base
has_many :courses
has_many :students :through enrollments
has_many :teachers :through courses
end
class Course < ActiveRecord::Base
has_one :teacher
belongs_to :school
has_many :students :through enrollments
end
class User < ActiveRecord::Base
has_many :courses
has_many :schools
end
Но если у меня есть только таблица пользователейа не два отдельных стола учеников и учителей, это не сработает.
Вместо этого мне придется сделать что-то вроде
class School < ActiveRecord::Base
has_many :users [that are teachers]
has_many :users :through enrollments [that are students]
end
Как мне настроить свою модель и ассоциации, чтобы создатьэто работа?
Спасибо.