Я впервые дал генерацию тестовых данных, пытаясь заполнить мою базу данных простым сценарием, который создает достаточное количество записей для моих моделей с учетом всех зависимостей (особенно полиморфизм).
Это мой 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
Например, фабрика 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
Хотя класс Random
производит один случайный термин, этот термин остается одинаковым для всех созданных экземпляров. В этом случае я бы получил 50 вопросов, скажем: «Как лучше всего путешествовать в Испании?» и два идентичных абзаца текста для каждого.
Чего мне не хватает?