我有一个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时,它会创建一个用户,...用户必须属于学校,以便工厂也创建一个学校。但是,当学校工厂被触发时,它也会因为主要联系而尝试创建用户。