Ho avuto difficoltà a impostare una relazione has_many/through
utilizzando Factory Girl.Factory Girl: come configurare un'associazione has_many/through
Ho i seguenti modelli:
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
My Factory:
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
Quello che voglio è per la mia fabbrica di posti di lavoro da creare con un valore predefinito Detail
di "Full Time".
Ho cercato di seguire questo, ma non hanno avuto fortuna: FactoryGirl Has Many through
io non sono sicuro di come il after_create
dovrebbero essere utilizzati per collegare il particolare via il JobDetail.
Questo ha funzionato molto bene grazie. Una domanda: l'aggiunta di after_create funziona, ma risponde con 'AVVISO DEPRESSIONE: Stai cercando di creare un attributo' detail_id '. La scrittura di attributi arbitrari su un modello è deprecata. Per favore usa solo "attr_writer' ecc." Qualche idea? – cman77
So che questo è vecchio, ma in FactoryGirl ora usi i callback con il formato 'after (: create)' invece di 'after_create' Il resto della risposta dovrebbe funzionare senza errori. – Arel
maggiori informazioni su 'after (: create)' callbacks: http://robots.thoughtbot.com/get-your-callbacks-on-with-factory-girl-3-3 – Brian