设计:在特定情况下是否可以不发送确认电子邮件?

时间:2014-11-18 05:08:51

标签: ruby-on-rails devise email-confirmation

实际上我正在使用设计登录和注册并且工作正常,它会发送一封非常好的确认电子邮件。但我需要在特定情况下发送确认电子邮件。我在URL中传递用户类型,并代表我想设置邮件。我有两种类型的用户,一种是确认他们的帐户他们的自我重置用户无法确认他们的帐户只有管理员可以批准他们的帐户。我已经覆盖了create方法

def create
    super
    if params[:type]=='xyz
        @user.skip_confirmation_notification!
    end
end

但它在两种情况下都会发送邮件。请告诉我哪里错了。

1 个答案:

答案 0 :(得分:3)

因此,根据设计确认模块,您可以通过以下代码跳过发送确认和电子邮件。

 def confirm_your_type_user_without_confirmation_email
     # check your condition here and process the following
     self.skip_confirmation! 
     self.confirm!
     # condition may end here
 end

现在让我们在create hook上调用它。

class User < ActiveRecord::Base
  after_create :confirm_your_type_user_without_confirmation_email
  ....
end

如需更多参考,您可以查看: Devise Confirmable module

解决方案应该与我上面提到的类似。最好的做法是避免控制器处理这些责任,因为它不是你的控制器应该采取的。 :) 我希望我的回答会给你一些解决问题的方法!谢谢!

相关问题