Ruby on rails 第10.13章,两个单元测试未通过,无需解释

Ruby on rails 第10.13章,两个单元测试未通过,无需解释,ruby-on-rails,Ruby On Rails,我在GetSuccessment.com上看到过这个问题,但不了解解决方法 在users\u controller\u spec.rb中,由于某种原因,此代码失败,可能是因为工厂没有创建不正确的用户和正确的用户来模拟不正确的用户访问正确的用户的编辑页面: (10.13) 运行rspec时出现以下错误: Failures: 1) UsersController authentication of edit/update pages for signed-in users should req

我在GetSuccessment.com上看到过这个问题,但不了解解决方法

在users\u controller\u spec.rb中,由于某种原因,此代码失败,可能是因为工厂没有创建不正确的用户和正确的用户来模拟不正确的用户访问正确的用户的编辑页面: (10.13)

运行rspec时出现以下错误:

Failures:
  1) UsersController authentication of edit/update pages for signed-in users should require matching users for 'edit'
     Failure/Error: get :edit, :id => @user
     No route matches {:id=>nil, :controller=>"users", :action=>"edit"}
     # ./spec/controllers/users_controller_spec.rb:223:in `block (4 levels) in <top (required)>'

  2) UsersController authentication of edit/update pages for signed-in users should require matching users for 'update'
     Failure/Error: put :update, :id => @user, :user => {}
     No route matches {:id=>nil, :user=>{}, :controller=>"users", :action=>"update"}
     # ./spec/controllers/users_controller_spec.rb:228:in `block (4 levels) in <top (required)>'
故障:
1) UsersController对登录用户的编辑/更新页面的身份验证应要求匹配“编辑”用户
失败/错误:get:edit,:id=>@user
没有路由匹配{:id=>nil,:controller=>users,:action=>edit}
#./spec/controllers/users\u controller\u spec.rb:223:in'block(4级)in'
2) UsersController对已登录用户的编辑/更新页面的身份验证应要求匹配“更新”用户
失败/错误:put:update,:id=>@user,:user=>{}
没有路由匹配{:id=>nil,:user=>{},:controller=>“users”,:action=>“update”}
#./spec/controllers/users\u controllers\u spec.rb:228:in'block(4级)in'

好吧,它给出了一个解释:它试图在没有任何
id的情况下构建路由。您确定
@user
包含实际用户吗?

我想我已经解决了这个问题。是我的错,没有将单元测试块“用于登录用户”放在用户规范中的“编辑/更新页面验证”部分。rb@user不是为这对测试创建的。谢谢你的回复!
Failures:
  1) UsersController authentication of edit/update pages for signed-in users should require matching users for 'edit'
     Failure/Error: get :edit, :id => @user
     No route matches {:id=>nil, :controller=>"users", :action=>"edit"}
     # ./spec/controllers/users_controller_spec.rb:223:in `block (4 levels) in <top (required)>'

  2) UsersController authentication of edit/update pages for signed-in users should require matching users for 'update'
     Failure/Error: put :update, :id => @user, :user => {}
     No route matches {:id=>nil, :user=>{}, :controller=>"users", :action=>"update"}
     # ./spec/controllers/users_controller_spec.rb:228:in `block (4 levels) in <top (required)>'