Factorygirl重用协会

时间:2014-11-09 01:28:53

标签: ruby-on-rails factory-bot

这里我定义了两个工厂,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个帖子。

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 )