我一直在尝试使用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