Ruby on Rails教程部分10.4.2测试失败

Art*_*akk 3 rspec ruby-on-rails

完成列表清单10.40并运行rspec /spec/controllers/users_controller_spec.rb后,我得到1个段失败(传递'destroy'部分中的所有其他测试)

describe "DELETE 'destroy'" do

  before(:each) do
    @user = Factory(:user)
  end

  describe "as a non-signed-in user" do
    it "should deny access" do
      delete :destroy, :id => @user
      response.should redirect_to(signin_path)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是控制台输出:

Failures:
  1) UsersController DELETE 'destroy' as a non-signed-in user should deny access
     Failure/Error: delete :destroy, :id => @user
     undefined method `admin?' for nil:NilClass
     # ./app/controllers/users_controller.rb:66:in `admin_user'
     # ./spec/controllers/users_controller_spec.rb:282:in `block (4 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚教程代码中是否有错误,或者我在某处犯了错误.

mha*_*rtl 5

我相信遇到这个问题的读者只是缺少清单10.11中引入:destroy:authenticatebefore过滤器中的方法.(注意:我是这本书的作者.)