版本: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
或姓氏的等效错误。
我用谷歌搜索过,没有看到其他人抱怨这个。