Я делаю главу 12 учебника hartle. Когда я побежал bundle exec rake db:seed
я получил эту ошибку:Не удалось выполнить валидацию на рейке db: seed
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
я попробовать запустить
rake db:reset
rake db:migrate
rake db:test:prepare
И наконец
rake db:populate
, но они не решают проблему. Когда я бегу rake db:populate
это дает:
Don't know how to build task 'db:populate'
Это мой seeds.rb файл:
# Users
User.create!(name: "Example User",
email: "[email protected]",
password: "foobar",
password_confirmation: "foobar",
admin: true,
activated: true,
activated_at: Time.zone.now)
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(name: name,
email: email,
password: password,
password_confirmation: password,
activated: true,
activated_at: Time.zone.now)
end
# Microposts
users = User.order(:created_at).take(6)
50.times do
content = Faker::Lorem.sentence(5)
users.each { |user| user.microposts.create!(content: content) }
end
# Following relationships
users = User.all
user = users.first
following = users[2..50]
followers = users[3..40]
following.each { |followed| user.follow(followed) }
followers.each { |follower| follower.follow(user) }
Я думаю, может быть проблема с этой линии email = "example-#{n+1}@railstutorial.org"
Я не вижу проблемы с вашим файлом семян. Вы уверены, что db упал должным образом. Может быть, зайдите в рельсы c и проверьте, нет ли каких-либо проблем. Или попробуйте поймать исключение и определить, какая запись вызывает проблему. – jphager2