Ruby on Rails教程测试失败

时间:2015-10-16 20:21:08

标签: ruby-on-rails ruby

我在Michael Hartl的ruby on rails教程书的第8章,我从第8章开始坚持会话辅助测试。我不知道为什么,但它一直都失败了,这是输出:

  1) Failure:
SessionsHelperTest#test_current_user_returns_right_user_when_session_is_nil[/home/robert/sample_app/test/helpers/sessions_helper_test.rb:11]:
--- expected
+++ actual
@@ -1 +1 @@
-#<User id: 762146111, name: "Michael Example", email: "michael@example.com", created_at: "2015-10-16 20:15:11", updated_at: "2015-10-16 20:15:12", password_digest: "$2a$04$GeN8/eE5hXsYwZA9AMATQeOpe5MyN2rAglt8di5kTch...", remember_digest: "$2a$04$wsaTKG4lu5.vTc3Sb62tB.QCWtfpo6ifSvXcPW0FNVE...">
+nil

以下是我的bitbucket repo的链接:https://bitbucket.org/colcrunch/sample-app/src/efcdda6964160121a707094b873954750f852bb2?at=log-in-log-out

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

使用本教程作为指南,在sessions_helper.rb文件中更改第12行:

cookies.permanent[:remember_token] = user.remember_token

$ wget  --restrict-file-names=unix --content-disposition --referer=$url $dl
$ ls -l
total 17740
-rw-r--r-- 1 giga group 18163514 May 10  2014 iPhone: The Missing Manual, 4th Edition.pdf

答案 1 :(得分:1)

我遇到了同样的问题并找到了修复程序。一些删除&#39;签名&#39;的建议从第12行是不正确的。这在程序中造成了安全漏洞。

以下是解决问题的方法:

在您的sessions_helper.rb文件中更改第22行:

if user && user.authenticated?(cookies[:remember_token])

if user && user.authenticated?(cookies.signed[:remember_token])