2017-01-07 63 views
-3

我正在使用Rails 4來構建問題和應答類型的應用程序。如何使用Rails 4設置嵌套模型

我應該創建模型是:

Question 
    belongs_to :user 
    has_many :answers 

Answer 
    belongs_to :user 
    belongs_to :question 

還是應:

Question 
QuestionAnswer 

感謝

+0

如果將另一個'Answer'模型,那麼你可以把這個一成'Question'模型。所以它會像'Question :: Answer'。 – droptheplot

+0

這真的取決於你,我不認爲值得爲它提出一個問題。但是,我會說你應該選擇第一個選項,因爲它會給你提供'question.answers'關聯,它比第二個選項給你的更好,它是'question.question_answers'。不過,這並不是什麼大問題,因爲您可以隨時自定義關聯名稱,使其隨心所欲。 –

回答

2

它根據自己的喜好對選擇表的名稱,但有簡單地questionsanswers表是可讀的,是有道理的,當你調用相關的方法,如說Question.last.answers而非Question.last.question_answers(無重複)。

此外,QuestionAnswer看起來更像是用來代表關聯question_answers上的加入模型question_answers

# models/question.rb 
# database table - questions 
class Question < ActiveRecord::Base 
    belongs_to :user 
    has_many :answers 
end 

# models/answer.rb 
# database table - answers (question_id as foreign key) 
class Answer < ActiveRecord::Base 
    belongs_to :questions 
end 

但是,真正由您決定如何爲數據建模。

相關問題