使用FactoryGirl我知道我可以制作这样的奇异属性:
FactoryGirl.define do
factory :company do
trading_name { FFaker::Company.name }
legal_type { legal_types.keys.sample }
updated_by { FactoryGirl.create(:user) }
...
现在我正在尝试添加用户,但不知道该怎么做。
我试过了:
users { FactoryGirl.create(:user) }
但each
循环出错,因为users
不是用户集合,而是更改为单个用户。
那么如何在工厂中创建has_many
个对象?你如何确保他们彼此联系?有些人会after(:create)
,但我想在保存Company
记录之前建立用户。
答案 0 :(得分:1)
Association
section表示要使用after(:create)
。在您的情况下代码将是:
FactoryGirl.define do
factory :company do
...
after(:create) do |company|
create_list(:user, 3, company: company)
end
更新:如果您在after_save
模型中进行了User
验证,则可以使用after(:build)
挂钩代替after(:create)
:
after(:build) do |company|
company.users << build(:user)
end