Я использую Mongoid, Rails и Fabrications и совершенно не понимаю, как это происходит.Любые мысли очень ценятся, но я знаю, что это довольно сложно.Я просто хочу сфабриковать пользователя и иметь только четыре объединенные группы, но я продолжаю загружать восемь.
Вот соответствующий раздел моего кода
@user1 = Fabricate.build(:registered)
@user1.joined_groups << [common_group,
cali_group,
ca46,
Fabricate(:polco_group, {:name => "Gang of 13", :type => :custom})]
Когда я запускаю@user1.joined_groups.size
Я получаю 4, но когда я делаю @user1.joined_groups.map(&:name)
, я получаю 8 записей:
#<PolcoGroup _id: 1 ... member_ids: [], follower_ids: []>
#<PolcoGroup _id: 1 ... member_ids: [], follower_ids: []>
#<PolcoGroup _id: 1 ... member_ids: [], follower_ids: []>
#<PolcoGroup _id: 1 ... member_ids: [], follower_ids: []>
#<PolcoGroup _id: 1 ... member_ids: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], follower_ids: [1, 1]>
#<PolcoGroup _id: 1 ... member_ids: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], follower_ids: [1, 1]>
#<PolcoGroup _id: 1 ... member_ids: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], follower_ids: [1, 1]>
#<PolcoGroup _id: 1 ... member_ids: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], follower_ids: [1, 1]>
(где я заменил все операторы BSON :: ObjectId ('4eab3ca5f11aac2701000009') на единицы и удалил aмного среднего кода.
Полный набор кода доступен здесь: https://gist.github.com/1323984
Большинство странных простых вызовов карты могут вызывать проблемы.
puts "just created user with these groups:"
puts @user1.joined_groups.map(&:name)
puts "then secondly"
puts @user1.joined_groups.map(&:name)
Создает это (!):
just created user with these groups:
Dan Cole
CA
CA46
Gang of 13
then secondly
Dan Cole
CA
CA46
Gang of 13
Dan Cole
CA
CA46
Gang of 13
Спасибо за любую информацию! После неоднократных попыток я не могу найти способ в терминале дублировать это, поэтому я подозреваю драгоценный камень Изготовление. (Обновление: нетЯ получаю эту ошибку со стандартными монгоидными объектами, поэтому я полностью обвиняю монгоид.)
Тим