Ruby on rails 设计重置密码帖子而不是放置
我在我的应用程序中使用了非定制版本的Desive,在重置密码功能方面遇到了一些问题 默认的重置密码表单的方法是放置,但在提交表单时,它会发布,这会导致它给我一个关于缺少电子邮件字段的错误。Deviate的PasswordsController中的POST/create方法是通过电子邮件向用户发送密码重置链接。PUT/update方法用于实际重置密码 设计的东西都没有任何改变。Desive版本为3.5.7,Rails版本为4.2.6 我将所有相关代码放在这里的要点中: 非常感谢您的帮助……在您的日志中写道:Ruby on rails 设计重置密码帖子而不是放置,ruby-on-rails,devise,Ruby On Rails,Devise,我在我的应用程序中使用了非定制版本的Desive,在重置密码功能方面遇到了一些问题 默认的重置密码表单的方法是放置,但在提交表单时,它会发布,这会导致它给我一个关于缺少电子邮件字段的错误。Deviate的PasswordsController中的POST/create方法是通过电子邮件向用户发送密码重置链接。PUT/update方法用于实际重置密码 设计的东西都没有任何改变。Desive版本为3.5.7,Rails版本为4.2.6 我将所有相关代码放在这里的要点中: 非常感谢您的帮助……在您的日
layouts/application(3.3ms)中呈现的designe/passwords/edit.html.erb
您确定edit.html.erb文件呈现了form.html.erb
视图吗?因为当我查看
source.html
文件时,它似乎呈现了一个不同的表单,该表单具有POST方法的路径。form.html.erb
使用PUT方法。因此,在我看来,呈现的表单是错误的。edit.html.erb和form.html.erb是同一件事。(我更新了要点以反映这一点)。当表单发布时,它会转到新的.html.erb表单。让我担心的是edit.html.erb和source.html不一样。如果要呈现edit.html.erb,那么source.html.erb应该具有要放置的方法(检查source.html的第17行)。你们在渲染edit.html.erb吗?我读了很多rails文档,它说应该放method=“post”。Rails然后生成一个隐藏的输入,如下所示:。那么rails应该使用PUT方法。看看你的耙子路线,第2-6行。post方法将映射到create操作(如果我理解正确,这不是您想要的)。您需要的是更新操作,它对应于PUT方法。这很奇怪,因为它调用的是create操作而不是update操作。它之所以要求缺少email字段,是因为它正是new.html.erb表单所需要的。