Ruby on rails 保持发送重置密码电子邮件,直到某个索引器设计出rails
我有一个Ruby on rails 保持发送重置密码电子邮件,直到某个索引器设计出rails,ruby-on-rails,ruby,ruby-on-rails-3,email,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Email,Devise,我有一个PasswordController继承自designe::passwordscocontroller,我制作了一个create功能,帮助我发送用户重置密码通知电子邮件,其实现: def create # I need to put some condition on the next line self.resource = resource_class.send_reset_password_instructions(resource_params) if
PasswordController
继承自designe::passwordscocontroller
,我制作了一个create
功能,帮助我发送用户重置密码通知电子邮件,其实现:
def create
# I need to put some condition on the next line
self.resource = resource_class.send_reset_password_instructions(resource_params)
if successfully_sent?(resource)
render :json => "Request successfully sent"
else
render :json => resource.errors, :status => 422
end
end
它可以正常工作,但如果用户点击重置密码5次,5封电子邮件将发送给他(如果发生延迟或用户从不等待,他们需要快速响应),最后一封将只起作用,因此我想禁用发送电子邮件,直到此令牌过期或其他情况,我对此进行了搜索,但找不到任何内容,我曾考虑在用户表中创建一个新属性,该属性将是一个日期时间
,以指示上次发送电子邮件的时间,但我想问,是否有更好的方法使用designe进行创建。您可以使用
这基本上就是您建议的实现;但是如果您使用的是Rcoverable
designe模块,它已经内置了 您可以使用
这基本上就是您建议的实现;但是如果您使用的是Rcoverable
designe模块,它已经内置了
def reset_password_period_valid?
reset_password_sent_at && reset_password_sent_at.utc >= self.class.reset_password_within.ago.utc
end