2015-06-03 3 views
1

Я пытаюсь добавить подтверждение по электронной почте модели под названием «Проект» в приложении Rails: пользователи должны иметь возможность задать адрес электронной почты для проекта, который не сохраняется, пока не нажмет ссылку подтверждения, отправленную на адрес электронной почты предоставлена.Когда на самом деле Devise отправляет электронные письма с подтверждением?

Хотя я не нуждаюсь в его функциях аутентификации, я думал, что драгоценный камень Devise может быть полезен. Я надеялся использовать: повторное подтверждение для реализации этой функции: когда пользователь пытается сохранить электронное письмо в проекте, он вместо этого сохраняется в столбце unconfirmed_email до тех пор, пока не подтвердится.

Оказывается, отчасти, чтобы работать - база данных обновляется правильно, генерируется токен, устанавливается поле "confirm_sent_at". Но никакой шаблон электронной почты не отображается (и не отправляется электронное письмо). Глядя на путь кода в lib/devise/models.rb, я вижу, как до того, как будет сохранено поле электронной почты, вызывается метод, который перехватывает это сохранение и вместо этого сохраняет значение unconfirmed_email. Но где действительно отправляется электронная почта? Что мне нужно сделать, чтобы активировать его? .

ответ

1

Предполагая, что вы правильно настроили Разрабатывают использовать функцию :confirmable и настроите электронную почту надлежащим образом (as described in this answer) Тогда оно должно быть простым, как называют это:

user.send_confirmation_instructions # where user is one of your Devise users 

По крайней мере, делая send_confirmation_instructions вызов должен показать, что электронная почта отправляет в журнал Rails.Если это так, но вы никогда не получили письмо, то вы неправильно настроили свой адрес.

+0

Спасибо! Я положил это в методы создания и обновления контроллера, и это сработало. В документации говорится о запуске send_confirmation_instructions gerts e-mail «вручную» - они когда-либо автоматически запускаются или только когда я вызываю этот метод? –

+0

Да, у меня определенно было много раз запускать письмо по электронной почте. Интересно, это ** только ** делает это автоматически при первоначальном создании записи? Обновления могут не запускать его. –

Смежные вопросы