0

版本:faker 1.4.3 ruby​​ ruby​​ 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

或姓氏的等效错误。

我用谷歌搜索过,没有看到其他人抱怨这个。

4

0 回答 0