Нужна помощь для настройки ассоциации из нескольких таблиц 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?