PeterWong
PeterWong

Reputation: 16011

Strange behavior of references in MongoDB

I am using Rails 3 with Mongoid.

I have two documents:

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

The problem is, I can get the user of any given status, but I cannot get the list of statuses from a user!

ie.

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

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

Please tell me what have I done wrong? I am just a few days with mongo......

Upvotes: 1

Views: 149

Answers (1)

jared
jared

Reputation: 1637

Your code looks correct to me.

Are you sure that MyStatus.first.user == MyUser.first ?

It's possible that you have multiple users in your db.. where the first user has no statuses, and the second user has status1 in his list.

To test this, try doing:

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

Upvotes: 1

Related Questions