Ссылка / Вложение документов - PullRequest
0 голосов
/ 03 апреля 2012

одна простая схема:

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

Сначала я попробовал это с Mongoid (мой предпочтительный ODM), но безуспешно.Известная проблема MixedRelation Mongoid.

Затем я попробовал следующую простую ассоциацию с 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: У вас есть нулевой объект, когда вы его не ожидали!

что не так?

1 Ответ

0 голосов
/ 08 мая 2012

Извините за поздний ответ.

Все, что вам нужно сделать, - это создать ключ для хранения всех идентификаторов и затем создать ссылку на этот ключ.Вот небольшой пример.

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