Использование mongoid 2.0.0.beta.20, если это означает.
Цель довольно проста, но я не могу ее достичь.У меня есть модель User
, которая
references_many :worlds, :inverse_of => :users
и World
, которая, конечно,
references_many :users, :inverse_of => :worlds
По человеческим словам, пользователь может посетить 0..инф-миры, и мир могут посещать пользователи 1..inf.Мир должен хранить список идентификаторов пользователей, которые были там, и пользователь должен хранить список идентификаторов миров, которые он посетил.Выглядит довольно просто, но не хочет работать для меня.
Теперь есть экземпляр User (назовем его someone
) и два экземпляра World (earth
и mars
, может быть)).Когда я пытаюсь сказать, что someone
посетил earth
, проблем нет:
earth.users << someone
earth.users.count # => 1
Затем я хочу сказать, что someone
также был включен mars
:
mars.users << someone
mars.users.count # => 1
Все в порядке?Не уверен:
earth.users.count # => 0
someone.worlds.count # => 0
Я также пытался использовать параметр :stored_as => :array
для отношений, но успеха не было вообще (направление не имеет значения):
someone.worlds << earth
NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<
(илюбой другой Array
метод поднимает, что я пытаюсь справиться с нулем)
Может быть, я что-то пропустил в документах или сделал что-то не так.Пожалуйста, помогите мне решить эту проблему.