版本: 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搜索过,没有看到有人抱怨过这个。