I have this example
FactoryGirl.define do
@site = FactoryGirl.create(:my_site)
factory :user do
email { Faker::Internet.email }
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
password { 'TarXlrOPfaokNOzls2U8' }
active_directory { '0' }
companies { [FactoryGirl.create(:company, site: @site)] }
sites { [@site] }
end
end
Is there a way to achieve this with a let or something...
FactoryGirl.define do
factory :user do
email { Faker::Internet.email }
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
password { 'TarXlrOPfaokNOzls2U8' }
active_directory { '0' }
companies { [FactoryGirl.create(:company, site: FactoryGirl.create(:my_site))] }
sites { [FactoryGirl.create(:my_site)] }
end
end
This works but it creates two my_site which is a Site object but I need them to be the same...any idea on how to achieve this
Probably the simplest is to use a local variable:
FactoryGirl.define do
site = FactoryGirl.create(:my_site)
factory :user do
email { Faker::Internet.email }
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
password { 'TarXlrOPfaokNOzls2U8' }
active_directory { '0' }
companies { [FactoryGirl.create(:company, site: site)] }
sites { [site] }
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With