3

FactoryGirl に問題があります。

これが私の2つの工場です:

FactoryGirl.define do
  factory :task do
    ...
    after(:build) do |task|
      question = FactoryGirl.create(:question)
      task.questions = [question]
    end
  end
end

FactoryGirl.define do
  factory :question do
    association :task, factory: :task
    ...
  end
end

Question factory は Task を作成し、Task factory は Question などを作成します。そのため、「SystemStackError: スタック レベルが深すぎます」というメッセージが表示されます。

関連付けを解除せずにこの問題を解決するにはどうすればよいですか?

4

1 に答える 1

7

両方のファクトリを相互に定義しているため、「スタック レベルが深すぎます」というエラーが発生します。association :task, factory: taskファクトリの行は必要ありませんquestion。関連付けは、タスクを作成するときに設定されます。

task工場でこれを試してください:

FactoryGirl.define do
  factory :task do
    ...
    questions { [ FactoryGirl.create(:question) ] }
  end
end
于 2012-12-12T14:39:54.323 に答える