2011-03-01 68 views
1

我在Mongoid中使用Rails 3。MongoDB中引用的奇怪行为

我有两个文件:

class MyUser 
    include Mongoid::Document 

    field ...... 

    references_many :statuses, :class_name => "MyStatus" 
end 

class MyStatus 
    include Mongoid::Document 

    field ...... 

    referenced_in :user, :class_name => "MyUser" 
end 

的问题是,我可以得到任何给定的身份用户,但我不能从用户获取状态列表!

即。

status = MyStatus.first 
status.user # the output is correct here 

user = MyUser.first 
user.statuses # this one outputs [] instead of the list of statuses... 

请告诉我我做错了什么?我只是mongo的几天......

回答

1

你的代码看起来对我来说是正确的。

你确定MyStatus.first.user == MyUser.first?

您的数据库中可能有多个用户..第一个用户没有状态,第二个用户在他的列表中有status1。

要测试此,尝试做:

status = MyStatus.first 
user = status.user 
user.statuses   # Should return at least one status 
+0

是否等于我没有测试过,但我没有证实'status.user_id'等于'user.id' .....现在我已经重新实现一切,现在似乎工作。所以也许你是对的。 – PeterWong 2011-03-02 03:07:16