MongoDB中引用的奇怪行为

时间:2011-03-01 03:42:44

标签: ruby-on-rails-3 mongodb associations mongoid

我正在使用Rails 3和Mongoid。

我有两份文件:

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 个答案:

答案 0 :(得分:1)

您的代码对我来说是正确的。

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

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

要测试这一点,请尝试:

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