【问题标题】:RailsTutorial: NoMethodError 'permanent' Rake::Test::CookieJarRailsTutorial: NoMethodError 'permanent' Rake::Test::CookieJar
【发布时间】:2012-10-03 18:04:47
【问题描述】:

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 Requiring signed-in users 部分中定义的测试失败:- 起初我找不到 sign_in 方法,然后我添加了

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)>'

【问题讨论】:

    标签: railstutorial.org


    【解决方案1】:

    刚刚遇到同样的问题并已解决。

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

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

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2013-09-17
      • 2016-02-22
      • 1970-01-01
      • 2013-02-13
      相关资源
      最近更新 更多