Rails has_many和belongs_to在同一个模型上

时间:2013-04-06 09:05:54

标签: ruby-on-rails-3 unit-testing factory-bot minitest stack-level

我有一个has_many:用户的学校模型。但是,每个学校也有一个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:

因此,错误源于第三个模型Userdoc。当工厂创建Userdoc时,它会创建一个用户,...用户必须属于学校,以便工厂也创建一个学校。但是,当学校工厂被触发时,它也会因为主要联系而尝试创建用户。

0 个答案:

没有答案