Zmagam się z nawiązaniem relacji has_many/through
za pomocą Factory Girl.Fabryka Dziewczyna: Jak skonfigurować asocjację has_many/through
mam następujące modele:
class Job < ActiveRecord::Base
has_many :job_details, :dependent => :destroy
has_many :details, :through => :job_details
end
class Detail < ActiveRecord::Base
has_many :job_details, :dependent => :destroy
has_many :jobs, :through => :job_details
end
class JobDetail < ActiveRecord::Base
attr_accessible :job_id, :detail_id
belongs_to :job
belongs_to :detail
end
moja fabryka:
factory :job do
association :tenant
title { Faker::Company.catch_phrase }
company { Faker::Company.name }
company_url { Faker::Internet.domain_name }
purchaser_email { Faker::Internet.email }
description { Faker::Lorem.paragraphs(3) }
how_to_apply { Faker::Lorem.sentence }
location "New York, NY"
end
factory :detail do
association :detail_type <--another Factory not show here
description "Full Time"
end
factory :job_detail do
association :job
association :detail
end
Co chcę jest moja fabryka praca ma zostać utworzony z domyślną Detail
z "Full Time".
Próbowałem się do tego, ale nie miał szczęścia: FactoryGirl Has Many through
nie jestem pewien, w jaki sposób after_create
należy stosować do mocowania detalu poprzez JobDetail.
To zadziałało, wielkie dzięki. Jedno pytanie - dodanie utworów after_create, ale odpowiada "DEPRECATION WARNING": Próbujesz utworzyć atrybut 'detail_id '. Zapisywanie dowolnych atrybutów w modelu jest przestarzałe. Proszę po prostu użyć 'attr_writer' etc.' jakichkolwiek pomysłów? – cman77
Wiem, że jest stary, ale w FactoryGirl używasz teraz wywołań zwrotnych w formacie 'after (: create)' zamiast 'after_create' Reszta odpowiedzi powinna nadal działać bez błędów. – Arel
więcej informacji o wywoływaniach 'after (: create)': http://robots.thoughtbot.com/get-your-callbacks-on-with-factory-girl-3-3 – Brian