Sta*_*ers 14 ruby ruby-on-rails factory-bot
或者是生成随机和唯一用户名所必需的外部gem?
这是我目前的工厂:
factory :user_4 do
    sequence(:id) { |n| n }
    sequence(:first_name) { |n| "Gemini" + n.to_s }
    sequence(:last_name) { |n| "Pollux" + n.to_s }
    sequence(:profile_name) { |n| "GeminiPollux" + n.to_s  }
    sequence(:email) { |n| "geminipollus" + n.to_s + "@hotmail.co.uk" }
end
使用序列方法适用于id,profile_name和email,但我的REGEX验证意味着名字和姓氏自动无效,因为它们中有一个数字.与独特性无关.
那么我该如何创建这些独特的名字呢?
Sim*_*tti 17
生成随机字符串有无限可能的解决方案,而不依赖于第三方宝石.
这是一个
('a'..'z').to_a.shuffle.join
# => "sugrjtyoiqlbxkzcfnawdhpevm"
例
factory :user_4 do
  sequence(:id) { |n| n }
  first_name { "Gemini" + random_name }
  # ...
end
def random_name
  ('a'..'z').to_a.shuffle.join
end
如果随机因素太低,则可能会增加复杂性.
小智 16
factory :user_4 do
  # ...
  sequence(:first_name, 'a') { |n| "Gemini" + n }
  sequence(:last_name, 'a') { |n| "Pollux" + n }
  # ...
end
FactoryGirl的#sequence方法接受第二个参数作为其起始值.这可以是String,Fixnum或支持通过#next方法递增的其他内容.
具有'a'序列的起始值将是a, b, c ... z, aa, ab, ac ...
| 归档时间: | 
 | 
| 查看次数: | 6726 次 | 
| 最近记录: |