0

设计版本4.3.0 Rails4.2.8

在向用户发送密码重置电子邮件后,我无法让用户更新他们的密码。

Steps to reproduce
当用户从登录页面单击忘记密码时。
他们在忘记密码页面上输入他们的电子邮件
然后他们会收到一封密码重置电子邮件
在电子邮件中他们单击链接
他们被带到更改密码页面
他们输入更新的密码和密码确认
显示错误,电子邮件已经被拿掉了

该电子邮件已被占用,因为他们已经有一个帐户,我想更新他们的密码而不是创建一个新帐户。

我没有任何我已覆盖的设计控制器。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在我提出请求时检查用户日志后,它post request不是一个放置。即使表格上写着method: put

在此处输入图像描述

4

1 回答 1

1

这就是您尝试让表单发送 PUT 请求的方式:html: {method: :put}.

html选项为表单标签添加可选的 HTML 属性,所以这里发生的事情是您只是method='PUT'在表单中添加属性。

但是,大多数浏览器在提交表单时不支持“GET”和“POST”以外的方法。

要完成这项工作,您需要一些 Rails 魔法。如果您以method另一种方式而不是在选项内部传递选项, Rails 魔法将起作用html

form_for(resource, as: ..., url: ..., method: :put )

http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-patch-put-or-delete-methods-work-questionmark

于 2018-04-06T22:22:49.203 回答