2011-03-01 72 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