我正在使用Rails 5.2和devise 4.4.3,我的工作可以确认,但是,我正在尝试这样做,以便当用户确认其帐户时,他们会收到另一封欢迎他们访问该网站的电子邮件。
注册后,可以通过单击电子邮件中的链接来进行确认电子邮件的发送和确认,但是我希望发送的欢迎电子邮件当前未发送。
我拥有的代码是这样的,我生成了一个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
答案 0 :(得分:0)
您可以使用after_confirmation回调,而不是尝试覆盖确认。
def after_confirmation
UserMailer.welcome_email(self).deliver
end
答案 1 :(得分:0)
def after_confirmation
UserMailer.with(user: @user, password: @user.password).welcome_email.deliver_later
end