Additional email address per user account support

Я выполнил следующие действия:

./launcher enter app
rails c
UserEmail.where(user_id: 7, primary: false).destroy_all
UserEmail.create!(user: User.find_by_username("user7"), email: "newemail@example.com")
exit
exit
./launcher restart app

Не уверен, что это была моя ошибка, но на этот раз я только выполнил строку удаления. Перезапустил приложение и обновил веб-сайт. Дополнительный адрес электронной почты исчез! Поэтому я proceeded и выполнил остальные действия через веб-интерфейс, изменив основной адрес на дополнительный, так как он больше не заблокирован.

Спешу поправить себя: изменение адреса через веб-интерфейс отправляет подтверждение на действующий адрес, но сохраняет недействительный адрес, как только вы возвращаетесь на страницу настроек пользователя или страницу администрирования пользователя.
Теперь я не знаю, что делать :frowning:

РЕДАКТИРОВАНИЕ:

На свой страх и риск засоряя эту ветку, я всё же разобрался.

После входа в rails c
Я удалил все адреса — просто не знал, как установить адрес как Основной. Вот почему каждый раз, когда я добавлял действующий адрес заново, он добавлялся как дополнительный.

# Удалить все дополнительные адреса
UserEmail.where(user_id: 1234, primary: false).destroy_all
# Удалить основной адрес
UserEmail.where(user_id: 1234, primary: true).destroy_all

# Установить основной адрес
UserEmail.create!(user_id: 1234, email: "validemail@example.com", primary: true)

Это само собой разумеется, что это пропускает валидацию, но вы уже проверили это вручную при слиянии аккаунтов, поэтому, надеюсь, другие смогут использовать этот пример. Осталось только отправить письмо для сброса пароля после перезапуска приложения.

5 лайков