当存在关联模型时,已知在两个模型中指定关联将创建循环依赖性并导致“堆栈级别太深”错误。那么指定关系的正确位置是什么?请看这些简单的关联:
class Patient
has_many :doctors, :through => :join_model
end
class Doctor
has_many :patients, :through => :join_model
end
也
class User
has_many :posts
end
class Post
belongs_to :user
end
在这些模型的工厂中,哪一个是举办协会的合适场所?
答案 0 :(得分:2)
factory_girl自述文件中有一个部分包含has_many
关联的示例:https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md#associations
我认为这里没有黄金法则。我通常每个模型有一个默认工厂,设置简单或没有关系,然后我有像:user_with_posts
这样的特殊工厂,用于各种相关的测试。
我也经常在测试他们自己create(:user, posts: [create(:some_special_post)])