这里我定义了两个工厂,Post和User,其中User与Post相关联。我使用它来播种数据库(而不是测试)。
FactoryGirl.define do
factory :user do
username { Faker::Internet.user_name }
password { Faker::Internet.password(12) }
email { Faker::Internet.email }
end
factory :post do
title { Faker::Lorem.sentence(5) }
url { Faker::Internet.url }
description { Faker::Lorem.sentences(2, word_count=9).join(" ").first(90) }
user
end
end
我创造了一个帖子100次。
FactoryGirl.create_list(:post, 100)
问题:
这创建了100个帖子,它还创建了100个用户。每个用户一个帖子。如何告诉Factorygirl
创建9个用户(即只有少于100个,只是一个例子)并在它们之间拆分100个帖子?理想情况下,我想转到用户#显示页面并查看超过1个帖子。
答案 0 :(得分:1)
你可以做类似的事情:
users= FactoryGirl.create_list(:user, 10)
total_random_posts_count = 0
users.each do |user|
random_post_count = rand(1..10)
total_random_posts_count += random_post_count
FactoryGirl.create_list(:post, random_post_count, user: user )
end
FactoryGirl.create_list(:post, 100 - total_random_posts_count , user: user )