Я создаю базовую миграцию пользователей и пытаюсь заполнить ее гемом Faker, а когда я делаю rake db: repopulate (это db: drop, db: create, db: migrate, db: seed)он продолжает терпеть неудачу в db: seed. Я получаю NoMethodError: неопределенный метод `create! 'для # дело в том, что создается впечатление, что создается один пользователь, но затем происходит сбой, и я могу понять, почему. Я сделал то же самое в аналогичном проекте, но у меня не было этой ошибки, и я проверил похожие вопросы иЯ не смог это исправить.
Сначала я подумал, что это имя может вызвать проблемы как в миграции, так и в tasks / db.rake, поэтому я исправил ее, но она не изменилась, затем япопытался использовать имя соглашения о миграции, но не сработало.
20191013045256_create_users.rb:
class CreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
t.string :email
t.string :encrypted_password
t.timestamps
end
end
end
schema.rb:
ActiveRecord::Schema.define(version: 2019_10_13_045256) do
create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
t.string "email"
t.string "encrypted_password"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
tasks / db.rake:
require 'faker'
require 'bcrypt'
namespace :db do
desc "Drop, create, migrate, seed and repopulate with sample data"
task repopulate: [:drop, :create, :migrate, :seed, :fakeit] do
puts "Done"
end
desc "TODO"
task fakeit: :environment do
10.times do
CreateUsers.create!(
email: Faker::Internet.email,
encrypted_password: BCrypt::Password.create(Faker::Internet.password)
)
end
end
end
Я ожидаю создать 10 пользователей для миграции пользователей в моей базе данных, но вместо этого я получаю этот NoMethodError: неопределенный метод `create! '