Rails 4 - 设计,跳过确认通知:after_create

时间:2015-05-27 07:25:24

标签: ruby-on-rails ruby authentication ruby-on-rails-4 devise

在Rails 4.2.0中,我使用Devise gem进行身份验证 - devise 3.4.1

创建用户后立即发送确认电子邮件。我们需要跳过此确认电子邮件并发送带有确认链接的自定义电子邮件。请帮我解决这个问题。

:confirmable用于用户模型。

3 个答案:

答案 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