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
啊,应该想到这一点。它工作得很好。谢谢。:)