Ruby on Rails 6/7, урок #19 | Отправка писем (ActionMailer, letter_opener) и сброс пароля

preview_player
Показать описание
Продолжаем уроки по Ruby on Rails! В этом видео узнаем, как отправлять электронные письма с помощью ActionMailer и просматривать их локально с помощью letter_opener. Также реализуем возможность сброса пароля для пользователей и поговорим о том, как добавить защиту для этого функционала.

Таймкоды:
00:00 Введение
00:40 Что мы будем создавать и апдейты
02:30 Маршрут и контроллер для сброса пароля
03:50 Форма для отправки инструкций сброса
05:50 Отправка писем через ActionMailer
11:00 Настройка letter_opener
12:50 Представления для ActionMailer
13:15 Проверка отправки
14:50 Завершение метода create
16:30 Токен для сброса пароля
20:50 Поиск пользователя по токену
22:20 Срок действия токена
23:20 Форма для сброса пароля
25:10 Проверка формы
26:00 Сброс пароля в контроллере
28:10 Очистка токена в callback
30:40 Финальная проверка
31:40 Создание concern Rememberable
32:40 Локализированные представления для писем
34:15 Заключение

Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

Не могу оставить ни один урок без комментария благодарности! Столько труда вложено в каждый урок и бросается в глаза огромный пласт знаний, которым владеет автор и легкость подачи материала! Дякую, что раскрыли такую важную тему и спасибо за всю серию уроков про #Rails!

rickbacker
Автор

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

sergeypanov
Автор

Илья, поздравляю с первой тысячей подписчиков! И спасибо, что даёте такой интересный и качественный материал.

yuriysh
Автор

Комментарий от Виктора Ивлева:

Я наконец то с вами почти синхронизировался =). Классно что вы указали что есть альтернативы для letter_opener! Я к примеру предпочитаю MailCatcher, так как это решение не заставляет меня добавлять к проекту доп зависимость. Интересно почему 60.minutes, а не 1.hour вроде это короче.. (возможно во мне не живет rubocop). Так же интересно что вы приверженец, пути DHH с использованием конесернов, я на своем прошлом проекте тоже любил это, но перейдя на новый проект, в нем пришлось использовать больше сервисов для всего... И вот поюзав оба решения, есть ощущения минусов в консернах (слишком много ответственности для модели), так и сервисах (100500 классов для реализации дополнительного функционала). Если знаете еще какое решение кроме dry, которое тоже по моему не айс в некоторых моментах (не все сходу осознают дзен). Возможно у вас есть какие-то интересные мысли по этому поводу? Спасибо за ваши труды.

IlyaBodrovKrukowski
Автор

Илья подскажите, а каковы критериий переноса методов в консерны. почему нельзя размещать их внутри модели если это консерн модели к примеру

Obrezkasada
Автор

Спасибо за отличное видео! Илья подскажите пожалуйста на проде что использовать для отправки почты? поднять свой smtp-сервер, API стороннего сервиса или что то другое?

ELDAR
Автор

19:06 откуда ruby знает edit_password_reset?

alexanonym