2013-06-06 105 views
0

我想模擬類似於StackOverflow的問題/答案系統,因爲有一個問題,它有答案和問題和答案都屬於不同的用戶(但答案也屬於問題)我的代碼如下:MongoMapper在一個模型上的兩個一對多關係

class User 
    include MongoMapper::Document 

    many :questions 

    timestamps! 
end 

class Question 
    include MongoMapper::Document 

    belongs_to :user 

    many :answers 
    many :comments 

    timestamps! 
end 

class Answer 
    include MongoMapper::Document 

    belongs_to :question 

    many :comments 

    timestamps! 
end 

我有幾個問題:

  1. 我怎麼能有兩件事情有一個模型的關係?一個問題可以有很多答案,用戶可以有很多答案。
  2. 如果我用question.answers.create()創建答案我如何將用戶與它聯繫起來?我可以手動設置user_id或類似的東西嗎?

回答

0

我想出了自己 - 我不太明白是什麼讓我相信我不能只是有多重關係。我多麼關心我!

對於別人誰被套牢:

class User 
    include MongoMapper::Document 

    many :questions 
    many :answers 

    timestamps! 
end 

class Question 
    include MongoMapper::Document 

    belongs_to :user 

    many :answers 
    many :comments 

    timestamps! 
end 

class Answer 
    include MongoMapper::Document 

    belongs_to :question 
    belongs_to :user 

    many :comments 

    timestamps! 
end 

創造新的 '答案',像這樣:

q = Question.find(id) 
u = User.find(id) 
a = q.answers.create(
    :user_id => u._id 
) 
相關問題