0

工場の作成中に問題に直面しています。私は次のような工場を持っています:

Factory.define :job do |j|
  j.association :service_partner, :factory => :service_partner
  j.price_per_task 1.to_money
  end
  j.after_build{|j| j.project.service_partner_ids = [j.service_partner.id] unless j.service_partner.nil?}
end

工場の作成中に after_build をスキップするにはどうすればよいですか?

4

1 に答える 1

1

after_buildコールバックをたまに実行したいだけの場合は、ネストされたファクトリを定義するのが最善の策です。

Factory.define :job do |j|
  j.association :service_partner, :factory => :service_partner
  j.price_per_task 1.to_money
  end
  factory :job_with_additional_setup do
    j.after_build{|j| j.project.service_partner_ids = [j.service_partner.id] unless j.service_partner.nil?}
  end
end

FactoryGirl.create(:job)次に、またはafter_buildを使用して、通常のジョブを作成できます。FactoryGirl.create(:job_with_additional_setup)

于 2013-02-21T00:46:54.870 に答える