我有一个学校模型 has_many :users。但是,每所学校也有一个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 时,它会创建一个用户,.. 用户必须属于一所学校,以便工厂也创建一个学校。但是,当学校工厂被触发时,由于 primarycontact 关联,它也会尝试创建用户。