2016-07-23 67 views
0

我有3种型号Rails 4+ has_many通过一个有一个关系?

1)

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

2)

Quiz 
belongs_to :user 
belongs_to :answer 

3)

Answer 
**has_one :user** 

这是正确的关系设置(以粗体显示的条款**线)?用英语:

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

回答

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 
+0

你介意解释包含answered_quizzes行? Rails&DB相当新颖,所以非常棒。但是,这看起来更合理。 – helpisgood

+0

这只是添加,以防将来某处想要获取用户已回答的所有测验。它使用答案表作为用户和测验之间的连接表。 – oreoluwa

相关问题