Привет, не спрашивайте почему, но я сейчас оказался в такой ситуации:
У меня как у администратора указаны три адреса электронной почты:
Основной: правильный.
Вторичный: тот же самый, но неподтвержденный.
Третий: действительно другой вторичный адрес, и он подтвержден.
Запустив rails console, я могу найти ID пользователя, но не знаю, как вывести список всех альтернативных адресов и удалить один из них. Через интерфейс это не работает, вероятно, из-за того, что адреса совпадают.
Привет, да, именно это я и пытаюсь сделать. В консоли я могу найти пользователя. Но как затем выполнить запрос для получения нескольких адресов электронной почты и удалить дубликаты — я не знаю.
Когда я выбираю пользователя, я не вижу адреса электронной почты; они, должно быть, находятся в какой-то другой записи.
Адреса электронной почты находятся в таблице user_emails. Вы можете найти их, используя ID пользователя:
UserEmail.where(user_id: <user_id>)
Замените <user_id> в команде выше на ID пользователя.
Найдите значение id записи UserEmail, которую вы хотите удалить. С помощью этого ID выполните следующую команду, чтобы получить конкретную запись для удаления:
Ещё раз проверьте полученный результат, чтобы убедиться, что это именно тот адрес, который нужно удалить. Затем выполните:
identical_email.destroy
Перед запуском любых деструктивных команд из консоли рекомендуется создать резервную копию базы данных вашего сайта. В случае возникновения проблем вы сможете восстановить данные из резервной копии.
Огромное спасибо. Как выяснилось, я мог извлечь только один идентификатор электронной почты для дубликатов. Мне кажется, что неподтверждённая запись, которую я не мог удалить, ещё не была привязана к этому идентификатору? Возможно, процесс проверки был незавершённым и находилась в подвешенном состоянии?
Чтобы решить проблему, я сделал один из двух альтернативных адресов электронной почты основным. Неподтверждённый дубликат всё ещё не удалялся, но когда я удалил подтверждённый (теперь уже бывший основной) адрес, то и неподтверждённый дубликат тоже исчез.
Затем я добавил исходный адрес электронной почты как дополнительный, а потом сделал его основным.