2012-04-03 21 views
0

1の単純なスキーマ: の参照/埋め込みドキュメント

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

が最初に私がいない成功を収めてMongoid(私の優先ODM)でこれを試してみました。 MongoidのMixedRelationの既知の問題これまでのところは良い

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 

はスロー::

は、私はMongoMapperとfollwoingシンプルな関連を試してみましたNoMethodErrorを:あなたは「didnのときはnilのオブジェクトを持っていますそれを期待する!

何が間違っていますか?

+0

ええ、私はそれをしました。配列 – David

+0

@Davidのemployee_idsをキャストするのを忘れてしまったので、あなた自身の質問に対する回答としてソリューションを投稿し、それを受け入れることができますか?同じことを探している人たちが正しい答えを見つけるのを助けるでしょう。 – theTRON

答えて

0

ご了承ください。

すべてのIDを格納し、そのキーへの参照を作成するためのキーを作成するだけです。ここに小さな例があります。

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