devise の recoverable に関する質問ですね。
recoverable.rb
を確認すると
送信のタイミングで reset_password_sent_at
というカラムがセットされ、
encrypted_password
が変更されたときに、当該カラムがクリアされる実装があることも確認できます。
これが3日以上前であることをチェックすればよいかと思います。
また、再送信をプログラム的に行うのは、同ファイルの
send_reset_password_instructions
というメソッドかと思います。
チェックのトリガーは、cronなどでの定期実行にするか、ActiveJobなどを用いて、3日+α後にチェックするなど、お好みで。
confirmableの方の話だったのですね。
失礼しました。
であれば、こちらのほうのファイルではないかと。
confirmable.rb
confirmation_sent_at : 送信された日時
unconfirmed_email : 確認中のメールアドレス
になるので、
unconfirmed_emailがNOT NULLで、confirmation_sent_at が3日以上前のものを探せばよさそうです。
メッセージ再送信は、resend_confirmation_instructions
という専用のメソッドが用意されているようですね。
mailer.rb
の
confirmation_instructions
のrecordは、Devise::RegistrationsController で作成されているのではないかと思います。
tokenは、ここでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/26 16:31
2018/07/26 17:01
2018/07/27 02:03