工厂女孩:重用关联作为属性

时间:2015-03-26 13:01:17

标签: ruby factory-bot

我的模型PlanCreatorContact。联系人属于创作者。每个Plan的{​​{1}} 必须属于contact

如何使用FactoryGirl确保creator关联来自contact数组?

换句话说,我想做这样的事情:

creator.contacts

然而,这不起作用。有任何想法吗?

请注意,我对FactoryGirl.define do factory :project do name "MyString" user contact {user.contacts.sample} end 模型进行了验证,以确保分配的联系人属于创建者。这目前未通过此验证。

2 个答案:

答案 0 :(得分:1)

我错过了对用户的reload调用,因为用户工厂在创建后回调中创建了联系人。

答案 1 :(得分:1)

您有两种方法可以构建具有依赖关系的繁琐对象:

  1. 使用FactoryGirl callbacks。在您的情况下,您应该定义after(:create)回调并分配其他依赖项。
  2. 创建辅助方法,该方法将创建对象并分配其他依赖项。这种方式类似于第一种但更灵活。