gpt4 book ai didi

ruby-on-rails - FactoryGirl——给一个工厂添加一条 has_many 记录

转载 作者:行者123 更新时间:2023-11-28 21:24:30 25 4
gpt4 key购买 nike

有了 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 记录之前让用户。

最佳答案

Association section Factory Girl 的文档说要使用 after(:create)。在您的情况下,代码将是:

FactoryGirl.define do
factory :company do
...

after(:create) do |company|
create_list(:user, 3, company: company)
end

更新:如果您在 User 模型中进行了 after_save 验证,您可以使用 after(:build) Hook 而不是 after(:create):

    after(:build) do |company|
company.users << build(:user)
end

关于ruby-on-rails - FactoryGirl——给一个工厂添加一条 has_many 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com