Пользователь существует при создании, но на самом деле его нет в базе данных

У меня странная проблема с настройкой БД для моего текущего приложения.

Поскольку миграции проходят без проблем, однако, когда я пытаюсь заполнить базу данных некоторыми тестовыми данными, она говорит, что данные существуют, и откатывает транзакцию.

Когда я запрашиваю БД, чтобы проверить, существует ли запись, она возвращается с nil.

В этот момент я заблудился там, где мне следовало бы даже искать виновника.

Любая помощь приветствуется.

seeds.rb:

User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)

грабли дБ: начальный вывод:

  ActiveRecord::SchemaMigration Load (0.5ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (0.2ms)  BEGIN
  User Exists (1.0ms)  SELECT  1 AS one FROM "users"  WHERE "users"."email" = 'john@doe.com' LIMIT 1
   (0.2ms)  ROLLBACK

User.all:

  User Load (1.0ms)  SELECT "users".* FROM "users"
  User Load (1.0ms)  SELECT "users".* FROM "users"
=> []

2 ответа

Похоже, что создание пользователя не удается из-за некоторой ошибки проверки, т. Е. Любой из проверок на User Модель запрещает создание вашей пользовательской записи.

Что вы можете сделать, это обновить seeds.rb с:

User.create!(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true) 

уведомление create! вместо create,

Таким образом, вы будете знать, на какой валидации не удалось создать пользователя.

Либо используйте User.create! или код, подобный этому

user = User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)

затем беги user.save

Другие вопросы по тегам