Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Desive何时实际发送确认电子邮件?_Ruby On Rails_Ruby_Ruby On Rails 3_Email_Devise - Fatal编程技术网

Ruby on rails Desive何时实际发送确认电子邮件?

Ruby on rails Desive何时实际发送确认电子邮件?,ruby-on-rails,ruby,ruby-on-rails-3,email,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Email,Devise,我正在尝试将电子邮件确认添加到Rails应用程序中名为“Project”的模型中:用户应该能够为项目设置电子邮件地址,只有单击发送到提供的电子邮件地址的确认链接后,才会保存该电子邮件地址 虽然我不需要它的身份验证功能,但我认为Desive gem可能有用。我希望使用:Reconfirmatible来实现该功能:当用户试图将电子邮件保存到项目中时,它会保存到unconfirm_email列,直到他们确认为止 从某种程度上说,它似乎正在工作——数据库已正确更新,生成了一个令牌,设置了“confirm

我正在尝试将电子邮件确认添加到Rails应用程序中名为“Project”的模型中:用户应该能够为项目设置电子邮件地址,只有单击发送到提供的电子邮件地址的确认链接后,才会保存该电子邮件地址

虽然我不需要它的身份验证功能,但我认为Desive gem可能有用。我希望使用:Reconfirmatible来实现该功能:当用户试图将电子邮件保存到项目中时,它会保存到unconfirm_email列,直到他们确认为止


从某种程度上说,它似乎正在工作——数据库已正确更新,生成了一个令牌,设置了“confirmation\u sent\u at”字段。但不会呈现任何电子邮件模板(也不会发送任何电子邮件)。查看lib/designe/models.rb中的代码路径,我可以看到,在将电子邮件字段保存到之前,如何调用一个方法来截取该保存,而不是保存到未确认的电子邮件。但是电子邮件发送实际上是在哪里触发的呢?如何激活它?

假设您已正确配置Desive以使用
:confirmable
功能,并正确配置了您的电子邮件(.n那么它应该简单到调用此:

user.send_confirmation_instructions # where user is one of your Devise users

至少,调用
send\u confirmation\u instructions
应该表明电子邮件正在Rails日志中发送。如果是这种情况,但您从未收到过电子邮件,则表明您的电子邮件配置不正确。

谢谢!我将此设置放在控制器创建和更新方法中,并且有效。文档中说end_confirmation_指令“手动”触发电子邮件--它们是否会自动触发,或者仅当我调用此方法时才会触发?是的,我肯定有Desive自动触发电子邮件多次。我想知道它是否仅在最初创建记录时自动触发?更新可能不会触发它。