【发布时间】:2013-04-29 18:07:25
【问题描述】:
我想用许多商店和用户填充数据库,每个用户对应一个商店。下面代码的问题是我收到错误 Validation failed: Email has been taken.
namespace :db do
desc "Fill database with sample data"
task populate: :environment do
make_stores
make_users
end
end
def make_stores
50.times do
name = Faker::Company.name
manager = Faker::Name.name
address = Faker::Address.street_name
Store.create!(name: name,
manager: manager,
address: address)
end
end
def make_users
stores = Store.all(limit: 8)
99.times do |n|
first_name = Faker::Name.first_name
last_name = Faker::Name.last_name
email = "example-#{n+1}@example.org"
password = "password"
stores.each { |store| store.users.create!(first_name: first_name,
last_name: last_name,
email: email,
password: password,
password_confirmation: password) }
end
end
【问题讨论】:
-
您在第一次运行代码时或以后运行代码时遇到了该错误?
-
不,我第一次得到错误时 rake db:reset,但是当我填充它时,我得到了同样的错误
-
删除所有用户并重试。
-
@SoniKishan 我通过重置数据库做到了。问题似乎是循环无法正常工作。
标签: ruby-on-rails faker