Factory Girl:重用关联作为属性
Factory Girl: Reuse association as attribute
我有一个模型 Plan
,它有一个 Creator
和一个 Contact
。联系人属于创作者。每个 Plan
的 contact
必须属于 creator
。
如何使用 FactoryGirl 确保 contact
关联来自 creator.contacts
数组?
换句话说,我想做这样的事情:
FactoryGirl.define do
factory :project do
name "MyString"
user
contact {user.contacts.sample}
end
但是,这不起作用。有任何想法吗?
请注意,我对 Plan
模型进行了验证,以确保分配的联系人属于创建者。这目前无法通过此验证。
我错过了对用户的 reload
调用,因为用户工厂在创建回调后创建联系人。
你有 2 种方法来构建具有依赖性的笨重对象:
- 使用 FactoryGirl callbacks。在您的情况下,您应该定义
after(:create)
回调并分配其他依赖项。
- 创建辅助方法,该方法将创建您的对象并分配额外的依赖项。这种方式与first类似,但更灵活。
我有一个模型 Plan
,它有一个 Creator
和一个 Contact
。联系人属于创作者。每个 Plan
的 contact
必须属于 creator
。
如何使用 FactoryGirl 确保 contact
关联来自 creator.contacts
数组?
换句话说,我想做这样的事情:
FactoryGirl.define do
factory :project do
name "MyString"
user
contact {user.contacts.sample}
end
但是,这不起作用。有任何想法吗?
请注意,我对 Plan
模型进行了验证,以确保分配的联系人属于创建者。这目前无法通过此验证。
我错过了对用户的 reload
调用,因为用户工厂在创建回调后创建联系人。
你有 2 种方法来构建具有依赖性的笨重对象:
- 使用 FactoryGirl callbacks。在您的情况下,您应该定义
after(:create)
回调并分配其他依赖项。 - 创建辅助方法,该方法将创建您的对象并分配额外的依赖项。这种方式与first类似,但更灵活。