Ruby on rails 没有与[GET]匹配的路由/密码“重置/编辑”;

Ruby on rails 没有与[GET]匹配的路由/密码“重置/编辑”;,ruby-on-rails,rspec,token,Ruby On Rails,Rspec,Token,我正在遵循,但我无法使测试通过,因为密码\u重置\u令牌出现问题 下面是测试:spec/requests/password\u resets\u spec.rb require'spec\u helper' 主题{page} 请描述“设置新密码”操作 let(:user){FactoryGirl.create(:user)} 在做之前 访问新密码重置路径 在t('user.email')中填写:user.email 单击按钮(t('submit.reset.password')) 访问编辑密码

我正在遵循,但我无法使测试通过,因为
密码\u重置\u令牌出现问题

下面是测试:spec/requests/password\u resets\u spec.rb

require'spec\u helper'
主题{page}
请描述“设置新密码”操作
let(:user){FactoryGirl.create(:user)}
在做之前
访问新密码重置路径
在t('user.email')中填写:user.email
单击按钮(t('submit.reset.password'))
访问编辑密码重置路径(用户密码重置令牌)
结束
它{应该有标题(完整标题(t('page.title.password\u reset.edit'))}
结束
下面是错误消息:

失败/错误:在{访问编辑密码重置路径(user.password重置令牌)}
ActionController::路由错误:
没有与[GET]“/password\u重置/编辑”匹配的路由
当我在
单击按钮(t('submit.reset.password')
后添加一个
put user.password\u reset\u令牌时,我看到字符串为nil。但我不明白为什么,你能帮我吗

以下是新密码重置视图:

:post do%>
以及编辑密码重置视图:


密码重置路径(参数[:id])do | f |%>
以及新密码\u重置控制器
创建
编辑
方法:

def创建
用户=用户。通过电子邮件查找(参数[:电子邮件])
user.send_password_如果用户
flash[:success]=t('flash.success.reset\u password.sent')
将\u重定向到根\u url
结束
定义编辑
@user=user.find_by(密码\u重置\u令牌:params[:id])
结束
send\u password\u reset
用户模型中定义:

def发送\密码\重置
self.password\u reset\u token=Digest::SHA1.hexdigest(SecureRandom.urlsafe\u base64.to\s)
self.password\u reset\u sent\u at=Time.zone.now
拯救(验证:false)
UserMailer.password\u重置(self.deliver)
结束
还有
rake路由
结果:

密码重置POST/密码重置(:格式)密码重置#创建
新密码重置获取/密码重置/新(:格式)密码重置新
编辑密码重置获取/密码重置/:id/编辑(:格式)密码重置编辑
密码重置补丁/密码重置/:id(:格式)密码重置#更新
PUT/password_resets/:id(:format)password_resets#update

你需要做一个
用户。在你的
点击按钮后重新加载
。令牌已写入数据库,但示例中的
User
实例与模型中的实例是不同的Ruby对象。

是否发布
rake routes
的输出?