在Rails 4.2.0中,我使用Devise gem进行身份验证 - devise 3.4.1
。
创建用户后立即发送确认电子邮件。我们需要跳过此确认电子邮件并发送带有确认链接的自定义电子邮件。请帮我解决这个问题。
:confirmable
用于用户模型。
答案 0 :(得分:31)
你可以试试这个
@user.skip_confirmation!
@user.save
在保存用户记录之前调用skip_confirmation!
。
要跳过确认通知,您只能使用skip_confirmation_notification!
@user.skip_confirmation_notification!
@user.save
希望这有帮助!
另外
如果您希望在不创建变量的情况下跳过同一行的确认而您不需要确认该特定用户,例如在seeds.rb
中:
User.create(email: "#{role_name}@example.com",
password: 'password',
password_confirmation: 'password',
confirmed_at: Time.now.utc, # skip confirmation)
答案 1 :(得分:2)
您可以自定义设计确认电子邮件,而不是禁用设计内置确认电子邮件并发送自定义电子邮件。 您可以使用
生成设计视图文件rails generate devise:views
然后自定义确认电子邮件。
答案 2 :(得分:1)
你可以这样做:
这可以是usercontroller
@user = User.new(email: "#{role_name}@example.com",
password: 'password',
password_confirmation: 'password',
confirmed_at: Time.now.utc, # skip confirmation)
@user.skip_confirmation!
@user.confirm
if @user.save
MyMailer.confirmation(@user)
else
# your implementation
end
请参阅文档https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer