2016-07-23 77 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

相關問題