Пользователь существует при создании, но на самом деле его нет в базе данных
У меня странная проблема с настройкой БД для моего текущего приложения.
Поскольку миграции проходят без проблем, однако, когда я пытаюсь заполнить базу данных некоторыми тестовыми данными, она говорит, что данные существуют, и откатывает транзакцию.
Когда я запрашиваю БД, чтобы проверить, существует ли запись, она возвращается с 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