FactoryGirlでダミーデータを作成しようとしています。FactoryGirlのネストした4つの子要素
ユーザーには多くの投稿があり、投稿には多くの動画があり、ビデオには多くのコメントがあります。 コメントは動画とユーザーに属します。 動画は投稿とユーザーに属します。 投稿はユーザーに帰属します。
少なくとも20人のユーザーを作成したいと思います。少なくとも10人の投稿があり、各投稿には少なくとも1つの動画があり、各動画には少なくとも1つのコメントが付きます。
これまでのところ、私は以下の工場を持っていますが、ビデオやコメントを稼働させることはできません。
スペック/工場/ comments.rb
スペック/工場/ posts.rb
FactoryGirl.define do
factory :post do
sequence(:title) { |n| "#{n}title" }
date Date.today.strftime('%m/%d/%Y')
body Faker::Lorem.paragraph(3)
tags Faker::Lorem.words(4)
user
trait :with_videos do
after(:build) do |post|
create(:video, post: post)
end
end
end
end
スペック/工場/ users.rb
FactoryGirl.define do
factory :user do
first_name Faker::Name.first_name
last_name Faker::Name.last_name
sequence(:username) { |n| "#{n}username" }
sequence(:email) { |n| "#{n}[email protected]" }
phone Faker::PhoneNumber.phone_number
password Faker::Internet.password(6, 20)
country Faker::Address.country
state Faker::Address.state_abbr
city Faker::Address.city
zip Faker::Address.zip
seeking_coach true
accept_email true
accept_phone true
end
end
スペック/工場/ videos.rb
FactoryGirl.define do
factory :video do
sequence(:title) { |n| "#{n}title" }
sequence(:url) { |n| "https://www.youtube.com/watch?v=tYm_#{n}2oCVdSM" }
embed_id { "#{url}.split('=').last" }
post
user
trait :with_comments do
after(:build) do |video|
create(:comment, video: video)
end
end
end
end
私は工場のフックで考える