Ruby on rails FactoryGirl-如何动态生成或覆盖回调

Ruby on rails FactoryGirl-如何动态生成或覆盖回调,ruby-on-rails,ruby,ruby-on-rails-4,factory-bot,Ruby On Rails,Ruby,Ruby On Rails 4,Factory Bot,我有一个具有存档功能的应用程序,允许用户在删除对象后恢复它们 一个组织有许多联系人,并且必须至少有一个 一个联系人必须属于一个组织 这两个对象都可以存档,但是当所有相关的联系人都存档时,组织才是存档的 目前我有以下几点。这种方法的问题是FactoryGirl.create(:archived\u organization)似乎会在:organization工厂中(:create)回调之后触发这两个: 工厂:联系do name{Faker::name.first_name} 关联:组织:工厂=

我有一个具有存档功能的应用程序,允许用户在删除对象后恢复它们

  • 一个
    组织
    有许多
    联系人,并且必须至少有一个
  • 一个
    联系人
    必须
    属于一个
    组织
  • 这两个对象都可以存档,但是当所有相关的
    联系人
    都存档时,
    组织
    才是
    存档的
目前我有以下几点。这种方法的问题是
FactoryGirl.create(:archived\u organization)
似乎会在
:organization
工厂中(:create)
回调之后触发这两个

工厂:联系do
name{Faker::name.first_name}
关联:组织:工厂=>:组织:联系人\u计数=>0
工厂:联系你吗
存档真实
关联:组织,:工厂=>:存档的组织,:联系人数=>0
结束
结束
工厂:有组织吗
名称{Faker::Company.name}
忽略
联系人数量2
结束
在(:create)do |实例之后,求值器|
FactoryGirl.create_列表(:联系人,evaluator.contacts_计数,组织:实例)
结束
工厂:你的组织是什么
存档真实
在(:create)do |实例之后,求值器|
FactoryGirl.create_列表(:存档的_联系人,evaluator.contacts_计数,组织:实例)
结束
结束
结束
这应该如何实现?是否可以在
:archived\u organization
工厂中(:create)
回调后覆盖
:organization
?如果没有,是否可以根据创建的工厂动态生成回调

希望我遗漏了一些明显的东西,但我欢迎大家建议我应该以不同的方式来做这件事。

怎么样:

after(:create) do |instance, evaluator|
  unless instance.archived
    FactoryGirl.create_list(:contact, evaluator.contacts_count, organisation: instance)
  end
end

啊,应该想到这一点。它工作得很好。谢谢。:)