Faker Gem随机生成空白名称

时间:2014-11-17 18:40:26

标签: ruby-on-rails ruby ruby-on-rails-4 faker

版本:   faker 1.4.3   红宝石红宝石2.1.3p242   rails 4.0.0

我一直在使用Faker一段时间没有问题。但是,我正处于我想开始验证字符串存在/长度的地步,我遇到了Faker的问题。我目前编写了一个rake任务来生成一堆示例数据。这是我创建用户的功能:

def make_users(agency)
  10.times do |n|
    first_name = Faker::Name.first_name
    last_name = Faker::Name.last_name
    email = rand(100).to_s + "" + Faker::Internet.email
    password = "password1"
    agency.users.create!( 
      first_name: first_name,
      last_name: last_name,
      email: email,
      password: password,
      password_confirmation: password)
  end
end

在用户模型中,我现在要求用户输入姓名(以及密码和电子邮件的其他验证)。

validates :first_name,  presence: true, length: { maximum: 50 }
validates :last_name,  presence: true, length: { maximum: 50 }

但是,当我运行我的rake任务来生成用户时,大约10%的时间Faker将尝试创建一个空名或姓的用户。因为我的脚本创建了10个用户,所以在没有给我的情况下它几乎没有运行:

ActiveRecord::RecordInvalid: Validation failed: First name can't be blank

或姓氏的等效错误。

我用Google搜索过,没有看到有人抱怨过这个。

0 个答案:

没有答案