ruby-on-rails 在Rails FactoryBot中多次使用create_list方法

pkwftd7m  于 2023-01-10  发布在  Ruby
关注(0)|答案(1)|浏览(102)

我有两个FactoryBots =〉userpost并且post有user_id

FactoryBot.define do
  factory :user do
    sequence(:name) { |n| "user#{n}" }
  end
end
FactoryBot.define do
  factory :post do
    sequence(:title) { |n| "title#{n}" }
    sequence(:user_id) { |n| n }
  end
end

我想做10个用户,和100个职位(每个用户10职位),所以我尝试。倍方法像这样=〉

10.times do
  FactoryBot.define do
    factory :post do
      sequence(:title) { |n| "title#{n}" }
      sequence(:user_id) { |n| n }
    end
  end
end

由于Factory already registered错误,此操作不起作用

FactoryBot.define do
    10.times do
      factory :post do
        sequence(:title) { |n| "title#{n}" }
        sequence(:user_id) { |n| n }
      end
    end
  end

这也不管用。

FactoryBot.create_list(:user, 10)
10.times do
  FactoryBot.create_list(:post, 10)
end

这使得FactoryBot生成post num 11, user num 11,因此发生foriegn键错误。我如何多次使用create_list方法?
只是我想做的是,每10个用户10个职位。

qni6mghb

qni6mghb1#

如果你以后不需要引用这些用户和/或帖子中的任何一个,那么你可以每10个帖子使用同一个用户创建10个帖子;

10.times do
  create_list(:post, 10, user: create(:user))
end

相关问题