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

Ruby 即使提供了记录,FactoryBot也会创建记录,ruby,factory-bot,Ruby,Factory Bot,我有时会在开发中创建记录。然而,它创建了一堆我没有预料到的额外数据 我有两个工厂: FactoryBot.define do 工厂:用户做什么 first_name{Faker::name.first_name} 姓氏{Faker::name.last_name} 电子邮件{{first_name}.{last_name}@example.com} 结束 工厂:邮政局 用户{创建(:用户)} 标题{Faker::Lorem.句子} 结束 结束 如果我在rails控制台中运行FactoryBot

我有时会在开发中创建记录。然而,它创建了一堆我没有预料到的额外数据

我有两个工厂:

FactoryBot.define do
工厂:用户做什么
first_name{Faker::name.first_name}
姓氏{Faker::name.last_name}
电子邮件{{first_name}.{last_name}@example.com}
结束
工厂:邮政局
用户{创建(:用户)}
标题{Faker::Lorem.句子}
结束
结束
如果我在rails控制台中运行
FactoryBot.create(:post)
,它将使用新用户创建一个新帖子。我没有料到的是,如果我执行
FactoryBot.create(:post,user:user.first)
,它将创建一个与第一个用户关联的帖子,但仍然创建一个新记录。所以,我明白了:

irb(main):001:0>User.count
=> 1
irb(main:002:0>FactoryBot.create(:post,user:user.first)
=> #
irb(main:003:0>User.count
=> 2

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

您不需要告诉FactoryBot创建(:user)。只需删除它即可

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