Rails Devise如何通过延迟作业发送密码重置邮件?

5

我想将rails插件devise的"reset_password_instructions"设置为delayed_job,但是我尝试了很多方法都失败了。

我发现了一个函数password_controller#creat:

self.resource = resource_class.send_reset_password_instructions(params[resource_name])

我认为发送重置密码电子邮件的句子需要修改。

我希望将其修改为:

self.resource =  Delayed::Job.enqueue ApplicationController::MailingJob.new(:resource_class.send_reset_password_instructions, params[resource_name])

好的,它会返回语法错误...

请帮帮我... 我不知道如何解决它... 谢谢。


那么,什么是语法错误?MailingJob应该是一个模型,所以你不应该像你的代码所示那样将它放在控制器模块中。 - Robert Speicher
https://dev59.com/_m855IYBdhLWcg3w0H53 - Zabba
2个回答

2

1
在控制台上:
Devise::Mailer.delay.confirmation_instructions(self.resource)

如果您能解释一下这段代码的作用,那么这个答案会更有帮助。 - Brad Koch
请尝试在Rails控制台中执行以下代码: self.resource是一个用户对象,您可以使用它来发送确认邮件。 例如: user = User.first Devise::Mailer.delay.confirmation_instructions(user) - akbarbin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接