小编Vin*_*nay的帖子

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

我有时在开发中使用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
Run Code Online (Sandbox Code Playgroud)

如果我在 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)
=> #<Post id: 1, title: 'Lorem Ipsum', host_id: 1>
irb(main:003:0> User.count
=> 2
Run Code Online (Sandbox Code Playgroud)

一切正常,它只是创建一个不附加任何内容的新用户记录。有什么办法可以阻止这种情况发生吗?

ruby factory-bot

5
推荐指数
1
解决办法
1610
查看次数

标签 统计

factory-bot ×1

ruby ×1