我一直在嘗試使用mongoid和referenced_in和references_many關聯。我有兩個模型,用戶和問題。一個問題可以有一個作者,但是一個用戶可以是一個作者多個問題。下面的代碼片段顯示了模型的結構。mongoid中referenced_in和references_many的控制器邏輯
class User
include Mongoid::Document
references_many :questions, :inverse_of => :poster, :dependent => :delete
end
class Question
include Mongoid::Document
referenced_in :poster, :class_name => "User"
end
現在,我的QuestionController#新情況如下
def create
@question = Question.new(params[:question])
@question.poster = current_user
if @question.save
current_user.questions <<= @question
current_user.update_attributes(:questions => current_user.questions)
end
end
的question.poster字段被正確填充,但不填充user.questions陣列。什麼纔是正確的控制器邏輯呢?
嗨保羅,感謝您的答覆。我嘗試過,但是'User.first.questions'仍然返回'nil'。儘管'poster_id'字段反映了問題的值,用戶中沒有相應的字段。我如何訪問用戶的問題數組? – reddragon 2011-02-27 13:09:24
當你打電話時它應該返回一個標準對象。你使用的是什麼版本的mongoid? – 2011-03-01 13:28:27
我正在使用2.0.0.rc.6。當我做'User.last.questions'時(我嘗試通過應用程序爲最後一個用戶創建一個新問題),我得到'[]'。 – reddragon 2011-03-03 07:54:59