哪个Rails现役模特协会?

Which Rails active model association?

我正在努力思考一些 ActiveModel 关联策略。

这是我要实现的目标:

  1. 一个Quiz属于一个Lesson
  2. A User 可以参加测验(他们不拥有它)
  3. 测验分数已保存并属于用户

因此,我认为我需要一个 through 类型 table,例如 user_quiz_scores,它将为我提供包含以下列的跟踪信息:

假设到目前为止这个思维过程是正确的,模型看起来像:

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

分数 model/table 真是让我费解的问题。也许我把这个复杂化了?非常感谢任何help/advice!

乍一看,好像是这样的:

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