Я новичок в mongoDB и просто использую его для нового проекта rails, над которым я работаю.
Теперь я хотел, чтобы (встроенный) документ ссылался на другую коллекцию, но с другими ролями.
Каким-то образом это не работает. Я знаю, что не могу определить отношение из внешней коллекции к моей встроенной. Так что в моем случае я не могу получить доступ к локациям от моего пользователя, и я в порядке с этим. Тем не менее, мне нужно определить часть referenced_in :location
, потому что в противном случае я получаю сообщение об ошибке undefined method 'name' for nil:NilClass
, когда пытаюсь добавить новое место в место.
Так что это просто предисловие. Моя настоящая проблема заключается в том, что эти роли не работают. Когда я создаю новое местоположение, подобное этому, в месте locations.create(:user_a => some_user)
, этому пользователю также присваивается user_b
.
Есть ли способ заставить это работать? Или я что-то не так делаю?
class Place
include Mongoid::Document
embeds_many :locations
end
class Location
include Mongoid::Document
embedded_in :place, :inverse_of => :locations
references_one :user_a, :class_name => "User" #, :stored_as => :array
references_one :user_b, :class_name => "User" #, :stored_as => :array
end
class User
include Mongoid::Document
referenced_in :location, :inverse_of => :dropper
referenced_in :location, :inverse_of => :picker
end