【问题标题】:Referencing/Embedding Documents引用/嵌入文档
【发布时间】:2012-04-03 12:03:47
【问题描述】:

一个简单的模式:

Company embeds (many) Departments
Company/Department references (many) Employees

首先我用 Mongoid(我的首选 ODM)尝试了这个,但没有成功。 Mongoid 的已知 MixedRelation 问题。

然后我尝试了与 MongoMapper 的以下简单关联:

c = Company.first
d = Department.first
e = Employee.first

c.departments << d
c.save

到目前为止还不错,但是...

c.employees << e
or
d.employees << e
or
c.departments.first.employees

抛出:NoMethodError:你没想到的是一个 nil 对象!

怎么了?

【问题讨论】:

  • 好吧,伙计们,我做到了。我只是忘记转换 Array 类型的employee_ids
  • @David,您能否发布您的解决方案作为您自己问题的答案并接受它?它将帮助正在寻找相同事物的其他人找到正确的答案。

标签: ruby-on-rails mongoid mongomapper


【解决方案1】:

抱歉,回复晚了。

您所要做的就是创建存储所有 id 的密钥,然后创建对该密钥的引用。这是一个小例子。

class Department
  include MongoMapper::EmbeddedDocument
  ...
  key :contact_ids, Array
  ...
  many :contacts, :in => :contact_ids
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2019-10-10
    • 2015-02-28
    • 2011-04-22
    相关资源
    最近更新 更多