设计确认后发送欢迎邮件

Devise sending welcome email after confirmation

我正在使用 rails 5.2 和设计 4.4.3,我可以确认工作,但是,我正在尝试使用它,以便当用户确认他们的帐户时,他们会收到另一封欢迎他们的电子邮件网站。

注册时会发送确认电子邮件,点击电子邮件中的 link 即可进行确认,但我希望在此之后发送的欢迎电子邮件目前未发送。

我的代码是这样的,我生成了一个 UserMailer 并完成了以下操作

user.rb 型号

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :trackable, :validatable

  has_one_attached :avatar

  def confirm!
    welcome_email
    super
  end

  protected

  def welcome_email
    UserMailer.welcome_email(self).deliver
  end
end

views/user_mailer/welcome_email.html.erb

<h2>Welcome <%= @user.email %></h2>

mailers/user_mailer.rb

class UserMailer < ApplicationMailer
  def welcome_email(user)
    @user = user
    mail(to: @user.email, subject: "Welcome! You are awesome!")
  end
end

您可以使用 after_confirmation 回调而不是尝试覆盖确认。

def after_confirmation
  UserMailer.welcome_email(self).deliver
end
  def after_confirmation
    UserMailer.with(user: @user, password: @user.password).welcome_email.deliver_later
  end