使用FactoryGirl/Faker生成3个字母的字符串

lin*_*ndy 2 ruby ruby-on-rails faker factory-bot

我想生成与此模式匹配的随机,唯一的字符串:[A-Z]{3}.如何通过FactoryGirl或Faker实现这一目标?

我想到了FactoryGirl的序列,但无法使它工作.

vic*_*ohl 8

试试这个:

FactoryGirl.define do
  sequence :str do |n|
    (0..2).map { (65 + rand(26)).chr }.join
  end
end

FactoryGirl.generate :str # => "GUW" 
Run Code Online (Sandbox Code Playgroud)


lin*_*ndy 5

我最终得到了:

sequence(:code) { ('A'..'Z').to_a.sample(3).join }
Run Code Online (Sandbox Code Playgroud)