0

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 関連付けにより、ユーザーの作成も試行されます。

4

0 に答える 0