2

Course、Level、Subjectの3つのモデルがあります。コースには多くのレベルと科目があります。

無限ループに陥ることなく、コールバックを使用して factory girl でコース オブジェクトを作成するにはどうすればよいですか?

factory.rb

factory :subject do
  name "Arabic"
  after_build do |subject|
    subject.courses << FactoryGirl.build(
      :course,
      :subject => subject,
      )
  end
end

factory :level do
  name "Level 1"
  after_build do |level|
    level.courses << FactoryGirl.build(
      :course,
      :level => level
      )  
  end
end

factory :course do
  name        "Intermediate Arabic 4"
  subject
  level       
end

このコードを使用すると、FactoryGirl は、コースがレベル​​ コールバックから構築されているときに新しい科目を作成しようとします。これにより、レベルが指定されていない新しいコースが構築されます...など。

私はいくつかのことを試しましたが、これについてはどこにも行きません。

4

0 に答える 0