railstutorial.org - RailsTutorial: NoMethodError 'permanent' Rake::Test::CookieJar

标签 railstutorial.org

app/helpers/sessions_helper.rb

module SessionsHelper
  def sign_in(user)      
    cookies.permanent[:remember_token] = user.remember_token
    self.current_user = user
  end
  def sign_out
    self.current_user = nil
    cookies.delete(:remember_token)
   end
   def signed_in?
     !current_user.nil?
   end
   def current_user=(user)
     @current_user = user
  end
  def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
  end
end

9.2.1 要求登录用户 部分定义的测试失败:- 起初我找不到登录方法然后我添加了

include SessionsHelper

之后在 spec/utilities.rb 文件中,我开始遇到以下错误,说 Rake::Test::CookieJar 中不存在名称为 permanent 的方法。

是否是由于某些 Gem 版本问题。

1) User Pages edit page 
 Failure/Error: before { sign_in user}
 NoMethodError:
   undefined method `permanent' for #<Rack::Test::CookieJar:0x007ff12c661e88>
 # ./app/helpers/sessions_helper.rb:3:in `sign_in'
 # ./spec/requests/user_pages_spec.rb:55:in `block (3 levels) in <top (required)>'

最佳答案

刚遇到同样的问题,已经解决了。

似乎他们指的不是 sessions_helper.rb 中的 sign_in 方法,而是 spec/support 中的 sign_in 方法/utilities.rb

在我的例子中,utilities.rb 中的这个辅助方法有不同的名称,重命名后一切正常:-)

关于railstutorial.org - RailsTutorial: NoMethodError 'permanent' Rake::Test::CookieJar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714242/

相关文章:

ruby-on-rails - Rspec 测试应该通过但失败

ruby-on-rails-3 - 重构 - 第 11 章,练习 3 Rails 教程第 2 版

ruby-on-rails - 无方法错误 : undefined method `save' rails console

ruby-on-rails - Rails 字符编码错误 : incomplete "\x00" on UTF-16LE

ruby-on-rails - Ruby on Rails 教程 : Chapter 9. 2 次测试失败

ruby-on-rails - Rails 登录后不重定向

javascript - 用户索引页面上的 Ajax 按钮未更新 - Rails 教程 4

ruby-on-rails - 'assert_not user.valid ?' vs. ' assert user.invalid?'

ruby-on-rails - Railstutorial.org Michael Hartl 第 9 章练习 3 "should not allow the admin attribute to be edited via the web"

ruby-on-rails - 根据 ruby​​.railstutorial.org 升级到 Rails 4 后无法加载 Railtie