Есть ли способ в factory_girl
указать случайный экземпляр, на который должна указывать ассоциация?Например, у меня есть Like
объект, который belongs_to
один User
и один SocialUnit
.Я хочу, чтобы фабрика для Like
выбрала случайный существующий User
и случайный SocialUnit
, вместо того, чтобы просто генерировать новый.Ниже приведен фрагмент кода:
Factory.define :like do |f|
if User.all.count > 0
f.user User.all.sort_by{ rand }.first
else
f.association :user
end
end
Он действительно выбирает случайного пользователя, но кажется, что случайный пользователь выбирается только один раз, потому что запуск этого
def create_hauls
5.times do |i|
Factory(:haul)
end
end
создает кучулайков всех с одним и тем же пользователем.Я думаю, это имеет смысл ... фабрика определена один раз, а затем многократно использована.
Я мог бы использовать последовательность, чтобы вызвать случайность;Есть ли способ определить его в рамках определения фабрики, или последовательность является лучшим способом сделать это?
Спасибо.