扶手:设计:用户的证明了登记后发送电子邮件(Rails: Devise: Sending an em

2019-07-29 17:38发布

我的应用程序使用设计,并正确发出确认电子邮件,并确认用户正确以及他们点击确认链接后。 我也想在用户确认发送第二封邮件。

对于如何延缓什么我正在寻找(我能找到)确认,或2-Step确认,但没有多多指教。

该设计::模块::确认的文档告诉我使用的方法是确认!但我不知道如何做到这一点。 有任何想法吗?

Answer 1:

Rails的设计:after_confirmation

简单地定义一个after_save的回调函数检查,看看如果用户确认,如果是这样,发送电子邮件。

如果你想节省一些CPU周期,你可以像这样的东西覆盖设计ConfirmationsController:

class ConfirmationsController < Devise::ConfirmationsController

    def show
        self.resource = resource_class.confirm_by_token(params[:confirmation_token])

        if resource.errors.empty?
            set_flash_message(:notice, :confirmed) if is_navigational_format?
            sign_in(resource_name, resource)

            # Send the user a second email          
            send_post_confirmation_email

            respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) }
        else
            respond_with_navigational(resource.errors, :status => :unprocessable_entity){ render :new }
        end
    end
end


文章来源: Rails: Devise: Sending an email after user comfirms registration