【问题标题】:Rails 4+ has_many through a has one relationship?Rails 4+ has_many 通过一个有一个关系?
【发布时间】:2016-07-23 22:09:19
【问题描述】:

我有 3 个模型

1)

 User
 has_one :quiz
 **has_many :answers, through :quizzes**

2)

 Quiz
 belongs_to :user
 belongs_to :answer

3)

 Answer
 **has_one :user**

这是正确的关系设置(就加粗的 ** 行而言)?英文:

我希望用户有一个测验,而他们可以回答多个其他用户的测验。

【问题讨论】:

    标签: ruby-on-rails database relationship


    【解决方案1】:

    我不完全确定,但看起来这就是你要找的东西:

    User
      has_one :quiz
      has_many :answers
      has_many :answered_quizzes, through: :answers, source: :quiz
    
    Quiz
      belongs_to :user
      has_many :answers
    
    Answer
      belongs_to :quiz
      belongs_to :user
    

    【讨论】:

    • 您介意解释一下包含answered_quizzes 的行吗?对 Rails 和 DB 来说相当新,所以这太棒了。但是,是的,这看起来确实更合理。
    • 这是刚刚添加的,以防将来您想获取用户已回答的所有测验。它使用 answers 表作为用户和测验之间的连接表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    相关资源
    最近更新 更多