Нужна помощь для настройки ассоциации из нескольких таблиц Rails4 mongoId

У меня есть проблема с установлением ассоциации здесь, в то время как Учитель устанавливает свою доступность. Учитель может настроить доступность только на курсы, на которые он / она зарегистрирован. Список курсов предварительно определен из таблицы CourseType.

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

Поэтому для учителя при настройке доступности должны быть видны только эти курсы.

class TeacherDetail < UserDetail
  include Mongoid::Document


  has_one :user, as: :user_type

  has_and_belongs_to_many :courses, class_name: "CourseType", inverse_of: :course_type, autosave: true

  accepts_nested_attributes_for :user


end

class CourseType
  include Mongoid::Document
  include Mongoid::Timestamps

  field :type, type: String
  field :name, type: String

  auto_increment :type_id

  has_and_belongs_to_many :teacher_details, class_name: "TeacherDetail", inverse_of: :teacher_id, autosave: true
end

class TeacherAvailibility

  include Mongoid::Document
  include Mongoid::Timestamps

  include RailsAdmin::TeacherAvailabilityRailsAdminConcern

  field :date, type: Date
  field :start_time, type: String
  field :end_time, type: String
  field :cost, type: Float

  belongs_to :teacher_detail

end

1 ответ

Отношения должны быть примерно такими

class TeacherDetail has_many :courses end

class CourseType belong_to :teacher end

class TeacherAvailability has_one :teacherDetail, through: :course_type end

Надеюсь я правильно понял ваш вопрос

Но mongoDB не поддерживает has_many через. вы можете найти решение здесь.

Как реализовать has_many: через отношения с Mongoid и mongodb?

Другие вопросы по тегам