Ruby Faker::Name.Unique验证失败

krcsximq  于 2022-10-15  发布在  Ruby
关注(0)|答案(1)|浏览(121)

我有一个简单的工厂,我在其中创建具有唯一名称的类别

FactoryBot.define do
  factory :category do
    name_en Faker::Name.unique.first_name
  end
end

在我的等级库文件中,我使用它来创建如下类别:

create_list(:category,2)

现在我的问题是,我不断地得到:

ActiveRecord::RecordInvalid Exception: Validation failed: Name en has already been taken

如果我调试并尝试自己调用Faker::Name.unique.first_name,它会为每个调用显示一个唯一的名称。但是,使用create(:category)会显示上面看到的错误。我做错了什么?

zaq34kh6

zaq34kh61#

sequence用作Uniq名称的name_en字段

FactoryGirl.define do
  factory :category do
    sequence :name_en, 'AAA0' do |sr|
      "#{Faker::Name.first_name}#{sr}"
    end
  end
end

相关问题