哪个Rails活动模型关联?

时间:2019-02-27 23:26:21

标签: ruby-on-rails ruby activemodel

试图绕过ActiveModel关联策略。

这就是我要完成的工作:

  1. Quiz属于Lesson
  2. 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 :(得分:6)

乍一看,看起来就像是这样:

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