has_many :users の School モデルがあります。ただし、各学校には primary_user もいます。これが私のモデルです:
has_many :users
belongs_to :primarycontact, :class_name => "User"
これは、本番および開発アプリでは問題なく機能しますが、テスト中に FactoryGirl でスタック レベルのエラーが発生します。関連付けは私には悪臭を放ち、テストでのスタック レベルのエラーは、おそらくもっと良い方法があることを示しています。
より良い方法はありますか?...FactoryGirl が苦労している理由はありますか?
私の工場
FactoryGirl.define do
factory :school do
name "Test School"
association :primarycontact, factory: :user, name: "Primary User"
end
end
スタックトレース
Userdoc
test_0001_must be valid 0:00:09.143 ERROR
stack level too deep
Exception `SystemStackError' at:
したがって、エラーは 3 番目のモデルである Userdoc で発生しています。factory が Userdoc を作成すると、User が作成されます。.. factory も School を作成するように、ユーザーは学校に属している必要があります。ただし、school factory がトリガーされると、primarycontact 関連付けにより、ユーザーの作成も試行されます。