一个简单的架构:
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
throws:NoMethodError:当你没想到它时,你有一个nil对象!
怎么了?
答案 0 :(得分:0)
对于那个迟到的答案感到抱歉。
您所要做的就是创建用于存储所有ID的密钥,然后创建对该密钥的引用。这是一个小例子。
class Department
include MongoMapper::EmbeddedDocument
...
key :contact_ids, Array
...
many :contacts, :in => :contact_ids
end