如何使用Factory Girl和random_data使用seed.rb正确随机化数据?

mat*_*jay 5 factories ruby-on-rails-3 factory-bot

我通过尝试使用一个简单的脚本填充我的数据库来生成测试数据,该脚本为我的模型创建了足够数量的记录来计算所有依赖项(特别是多态性).

这是我的 seeds.rb

require 'factory_girl_rails'

50.times do

  @user = FactoryGirl.create(:user)
  FactoryGirl.create(:contact, :user => @user)

  @question = FactoryGirl.create(:question, :user => @user)

  FactoryGirl.create(:user_answer, :question => @question, :authorable => @user)

  @contact = FactoryGirl.create(:contact, :user => @user)
  FactoryGirl.create(:contact_answer, :question => @question, :authorable => @contact)

end
Run Code Online (Sandbox Code Playgroud)

举个例子,这里是question工厂:

FactoryGirl.define do
  factory :question do
    title       "What is the best place to travel in " + Random.country + "?"
    body        Random.paragraphs(2)
    association :user, :method => :build
  end
end
Run Code Online (Sandbox Code Playgroud)

虽然Random该类确实生成了一个随机项,但对于创建的所有实例,该术语保持不变.在这种情况下,我会得到50个问题,比如说,"在西班牙旅行的最佳地点是什么?" 和每个相同的两段文字.

我错过了什么?

Mat*_*hew 3

所以我不确定这个Random类是从哪里来的。但我总是用Faker 宝石来做这些事。

它包含姓名、电子邮件、城市、电话号码:如下所示:

Faker::Name.name
Faker::Address.uk_country
Faker::Lorem.paragraph
Run Code Online (Sandbox Code Playgroud)

一探究竟