具有关联的模型的工厂

时间:2012-08-06 11:10:31

标签: ruby-on-rails factory-bot

当存在关联模型时,已知在两个模型中指定关联将创建循环依赖性并导致“堆栈级别太深”错误。那么指定关系的正确位置是什么?请看这些简单的关联:

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

在这些模型的工厂中,哪一个是举办协会的合适场所?

1 个答案:

答案 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)])

中自己构建它们