Próbuję dodać potwierdzenie modelu do wiadomości e-mailo nazwie „Project” w aplikacji Rails: użytkownicy powinni mieć możliwość ustawienia adresu e-mail dla projektu, który nie zostanie zapisany, dopóki nie kliknie linku potwierdzenia wysłanego na podany adres e-mail.
Chociaż nie potrzebuję jej uwierzytelnianiafunkcje, myślałem, że klejnot Devise może być przydatny. Miałem nadzieję, że użyję: rekonfigurowalnego do zaimplementowania funkcji: gdy użytkownik próbuje zapisać wiadomość e-mail do projektu, zamiast tego jest zapisywany w kolumnie unconfirmed_email, dopóki nie potwierdzi.
Wydaje się częściowo działać - baza danychjest poprawnie aktualizowany, generowany jest token, ustawiane jest pole „confirmation_sent_at”. Ale szablon e-mail nie jest renderowany (i nie jest wysyłany e-mail). Patrząc na ścieżkę kodu w lib / devise / models.rb Widzę, jak przed zapisaniem pola e-mailowego wywoływana jest metoda przechwytująca zapisywanie i zapisująca w pliku unconfirmed_email. Ale gdzie właściwie jest wysyłany e-mail? Co muszę zrobić, aby go aktywować?
Odpowiedzi:
1 dla odpowiedzi № 1Zakładając, że poprawnie skonfigurowałeś Devise, aby użyć :confirmable
poprawnie skonfiguruj i skonfiguruj swój adres e-mail (jak opisano w tej odpowiedzi). To powinno być tak proste, jak wywołanie tego:
user.send_confirmation_instructions # where user is one of your Devise users
Przynajmniej czyniąc send_confirmation_instructions
połączenie powinno pokazywać, że wiadomość e-mail jest wysyłana w dzienniku Railsów. Jeśli tak jest, ale nie otrzymujesz e-maila, masz nieprawidłowo skonfigurowany e-mail.