Я создания базы данных в Ruby On Rails с использованием Mongoid, который включает в себя следующие три коллекции Residence, Карта, и маршрутизатор:Как добавить документы (ObjectId's) в has_many и has_and_belongs_to_many отношения с использованием Ruby on Rails с Mongoid?
residence.rb
class Residence
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
has_many :maps, inverse_of: :residence
has_many :routers, inverse_of: :residence
field :address, type: String
field :resident, type: String
end
map.rb
class Map
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
belongs_to :residence, inverse_of: :maps
has_and_belongs_to_many :routers, inverse_of: :maps
embeds_many :pins
field :name, type: String
spatial_index "pins.loc"
end
router.rb
class Router
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Geospatial
belongs_to :residence, inverse_of: :routers
has_and_belongs_to_many :maps, inverse_of: :routers
field :loc, type: Point
field :MAC, type: String
field :name, type: String
field :serial, type: String
spatial_index :loc
end
У меня есть один документ проживания, один картографический документ и один документ маршрутизатора. Мой вопрос заключается в том, как реализовать отношения has_many, belongs_to и has_and_belongs_to_many между документами, так что документ места жительства ссылается на _id маршрутизатора и _id карты, документ карты ссылается на _id маршрутизатора, а ссылки маршрутизатора _id карты.
Извините, если это не ясно, и спасибо за помощь!
Редактировать: Вот объяснение отношений: Многие Карты (отображающие разные данные) могут быть сгенерированы для каждого Резиденция. В каждом Резиденте есть Маршрутизатор, но может иметь более одного Маршрутизатора. Маршрутизатор (ы) включен в карту, но не должен быть встроен, поскольку он может существовать без карты.
Многие Карты (отображающие разные данные) могут быть сгенерированы для каждого Резиденция. В каждом Резиденте есть Маршрутизатор, но может иметь более одного Маршрутизатора. Маршрутизатор (ы) включен в карту, но не должен быть встроен, поскольку он может существовать без карты. –
Я изменил ассоциации на основе вашего комментария. –
Я понимаю, как определить отношения в моделях. Мой вопрос заключается в том, как вставлять документы, указывая, с какими документами он связан. –