gpt4 book ai didi

ruby - 即使提供了记录,FactoryBot 也会创建记录

转载 作者:行者123 更新时间:2023-12-05 06:14:56 24 4
gpt4 key购买 nike

我使用 factorybot有时在开发中创建记录。但是,它创建了一堆我没有预料到的额外数据。

我有两个工厂:

FactoryBot.define do
factory :user do
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
email { "#{first_name}.#{last_name}@example.com" }
end

factory :post do
user { create(:user) }
title { Faker::Lorem.sentence }
end
end

如果我运行 FactoryBot.create(:post)在 Rails 控制台中,它将使用新用户创建一个新帖子。我没想到的是,如果我这样做FactoryBot.create(:post, user: User.first) ,它会创建一个与第一个用户关联的帖子,但仍然会创建一个新记录。所以,我明白了:

irb(main):001:0> User.count
=> 1
irb(main:002:0> FactoryBot.create(:post, user: User.first)
=> #<Post id: 1, title: 'Lorem Ipsum', host_id: 1>
irb(main:003:0> User.count
=> 2

一切正常,它只是创建了一个没有附加到任何东西的新用户记录。有没有办法阻止这种情况发生?

最佳答案

您不需要告诉 FactoryBot 创建(:用户)。只需将其删除即可。

factory :post do
user
title { Faker::Lorem.sentence }
end

https://devhints.io/factory_bot

关于ruby - 即使提供了记录,FactoryBot 也会创建记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62659505/

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