TEL:400-8793-956
当前位置:程序、服务器

未定义的方法'authenticate'为nil:NilClass

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-13 11:58:48

 问:我可能花了一个小时来摆弄我的代码,但终生无法弄清为什么该测试无法通过。

 
)UserSessionsController具有正确凭据的POST'create '重定向到待办事项列表路径
失败/错误:post:create,电子邮件:“ jason@teamtreehouse.com”,密码:“ treehouse1”
 NoMethodError:
   未定义的方法'authenticate'for nil:NilClass
 # ./app/controllers/user_sessions_controller.rb:7:在'创建'
 #./spec/controllers/user_sessions_controller_spec.rb:22:在`块(4个级别)中<顶部 (必需)> '
 
 
答:在self.email = email.downcase结尾时,阻止电子邮件地址保存在数据库中。用户测试通过,因为它发送了正确的信息。
 
在2015年10月6日15:06:25 -0700开始为127.0.0.1的POST“ /用户”
由UsersController#create作为HTML
  参数进行处理:{“ utf8” =>“✓”,“ authenticity_token” =>“ YGmKt135ndHaBhz03LaLZ5gU2280lwYQ9hSrJL / zHGA =“,” user“ => {” first_name“ =>” Test“,” last_name“ =>” User“,” email“ =>” test@test.com“,” password“ =>” [已过滤] “,” password_confirmation“ =>” [已过滤]“},”提交“ =>”注册“}
    (0.1毫秒)开始事务
  用户存在(0.1毫秒)从“用户”中选择“ 1”作为“用户”。电子邮件“ ='test@test.com'
LIMIT 1在“ password_digest”列上为“ string”类型插入的二进制数据
但是运行的SQL是
 
SQL(0.3ms)插入“用户”(“ created_at”,“ first_name”,“ last_name”,“ password_digest”,“ updated_at”))值(?,?,?,?,?)[[“ created_at”,Tue ,2015年10月6日22:06:26 UTC +00:00],[“ first_name”,“ Test”],[“ last_name”,“ User”],[“ password_digest”,“ $ 2a $ 10 $ Sx9ivfhYYM1gW.VhRLdw6es8hgKL3MdycsA9tfw24gHqsDMxbl ],[“ updated_at”,星期二,2015年10月6日22:06:26 UTC +00:00]]
    (127.3ms)commit transaction
重定向到http:// localhost:3000 / users / 6
卸下!获取要保存的电子邮件,但仍未通过测试。据我了解,rspec每次测试都会创建新数据,因此它应该每次都创建一个ID为1的新用户。现在可以很好地创建用户会话。
 
由UserSessionsController#create作为HTML
  参数进行处理:{“ utf8” =>“✓”,“ authenticity_token” =>“ YGmKt135ndHaBhz03LaLZ5gU2280lwYQ9hSrJL / zHGA =”,“ email” =>“ sick@email.com”,“密码” =>“ [FILTERED]“,” remember_me“ =>” 1“,” commit“ =>”登录“}
  用户负载(0.2ms)选择” users“。* FROM” users“ WHERE” users“。” email“ =' doctor@email.com'LIMIT 1
重定向到http:// localhost:3000 / todo_lists
已完成302在54ms内找到(ActiveRecord:0.2ms)
上一篇: XCode 7,toInt()不可用?
下一篇: 在开头用m命名成员变量真的重要吗?