防止Devise / ActionMailer发送确认电子邮件但仍然创建令牌

时间:2014-05-28 17:33:42

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

我想发送自定义电子邮件,稍后我需要将创建的令牌保留在数据库中。如果我使用skip_confirmation!,则不会创建令牌,但会阻止发送电子邮件。

如何停止发送电子邮件而不是确认流程?

1 个答案:

答案 0 :(得分:0)

尝试使用skip_confirmation_notification!代替skip_confirmation!。这应该会停止发送电子邮件,但仍应生成并保存确认令牌本身。但是,根据您打算如何处理事情,您可能需要考虑这些情况:

  1. 他们重新发送确认说明(除非您已将其禁用),因为它似乎不会被skip_confirmation_notification!停止。
  2. 如果他们更改了需要重新确认的电子邮件地址(如果可重新启动),但如果您刚刚调用它,则看起来尊重skip_confirmation_notification!
  3. 另外,正如我在对该问题的评论中所说的那样,确认令牌在数据库中被加密,所以如果您计划在以后的某个时间将其从数据库中删除,那么您将无法做到。您需要掌握令牌的明文值,以便在对象仍然存在时插入您的自定义电子邮件(如果这是您的计划),因为它是一个瞬态属性。

    我认为您有理由不用自定义电子邮件替换设计的标准确认电子邮件吗?那你就不用费心去跳过发送了。