【问题标题】:Strange behavior of references in MongoDBMongoDB中引用的奇怪行为
【发布时间】:2011-03-01 03:42:43
【问题描述】:

我正在使用带有 Mongoid 的 Rails 3。

我有两个文件:

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才几天......

【问题讨论】:

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


    【解决方案1】:

    您的代码在我看来是正确的。

    您确定 MyStatus.first.user == MyUser.first 吗?

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

    要对此进行测试,请尝试这样做:

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

    【讨论】:

    • 我没有测试它们是否相等,但我确实确认了status.user_id 等于user.id.....现在我已经重新实现了所有东西,它现在似乎工作了。所以也许你是对的。
    猜你喜欢
    • 1970-01-01
    • 2018-07-15
    • 2014-07-17
    • 2015-04-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多