Какая Rails активная модель ассоциации? - PullRequest
0 голосов
/ 28 февраля 2019

Попытка обернуть голову вокруг некоторых стратегий связывания ActiveModel.

Вот что я пытаюсь сделать:

  1. A Quiz принадлежит Lesson
  2. A User может пройти тест (им не принадлежит)
  3. Счет теста сохранен и принадлежит пользователю

Итак, я считаю, что яВам понадобится таблица типа through, такая как user_quiz_scores, которая предоставит мне информацию отслеживания со следующими столбцами:

  • quiz_id
  • user_id
  • user_quiz_score

Предполагая, что этот мыслительный процесс до сих пор является правильным, Модели будут выглядеть примерно так:

class Lesson < ApplicationRecord
  has_one :quiz
end

class Quiz < ApplicationRecord
  belongs_to :lesson
end

class Score < ApplicationRecord
  has_many ??????
end

class User < ApplicationRecord
  has_many :scores
end

Модель / таблица Score - это действительно то, что у меня возникают проблемы, оборачивая головувокруг.Может я это слишком усложнил?Любая помощь / совет с благодарностью!

1 Ответ

0 голосов
/ 28 февраля 2019

На первый взгляд кажется, что это будет что-то вроде:

class Lesson < ApplicationRecord
  has_one :quiz
end

class Quiz < ApplicationRecord
  belongs_to :lesson
  has_many :scores
  has_many :users, through: :scores
end

class Score < ApplicationRecord
  belongs_to :user
  belongs_to :quiz
end

class User < ApplicationRecord
  has_many :scores
  has_many :quizzes, through: :scores
end
...