Как вы управляете подключением четырехуровневой модели?
Итак, у меня есть группа, в которой много категорий, много экзаменов и столько же тем.
class Group < ApplicationRecord
has_many :categories
has_many :exams, through: :categories
#has_many :topics, through :exams
accepts_nested_attributes_for :categories
end
class Category < ApplicationRecord
belongs_to :group
has_many :exams
end
class Exam < ApplicationRecord
belongs_to :category
has_many :topics
has_one :group, through: :category
accepts_nested_attributes_for :topics
end
class Topic < ApplicationRecord
belongs_to :exam
has_one :category, through: :exam
#has_one :group, through :category
end
Как мне точно подключить группу к теме, учитывая две таблицы посередине?
(Отредактировано для ясности)
Как подключить тему к группе?
Что происходит, когда вы делаете то, что закомментировали?





What am I missing? Or is it just ridiculous to have four layers?
Не смешно. Просто предоставьте ассоциацию has_manythrough как обычно:
class Group < ApplicationRecord
has_many :categories
has_many :exams, through: :categories
has_many :topics, through: :exams
end
Это сгенерирует SQL, например:
SELECT "topics".* FROM "topics" INNER JOIN "exams" ON "topics"."exam_id" = "exams"."id" INNER JOIN "categories" ON "exams"."category_id" = "categories"."id" WHERE "categories"."group_id" = ?
Я не уверен, в чем ваш вопрос ... у вас особая проблема?