RailsTutorial: NoMethodError 'permanent' Rake::Test::CookieJar

微笑、不失礼 提交于 2019-12-10 18:36:11

问题


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

Tests defined in section 9.2.1 Requiring signed-in users are failing:- At first I was getting sign_in method not found then I added

include SessionsHelper

in spec/utilities.rb file after that I started getting below error, saying no method with name permanent exists in Rake::Test::CookieJar.

Is it due to some Gem version issue.

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

回答1:


Just ran into the same problem and got it fixed.

It seems they are not referring to the sign_in method in sessions_helper.rb but the the sign_in method in spec/support/utilities.rb

In my case this helper method in utilities.rb had a different name, after renaming it everything worked fine :-)



来源:https://stackoverflow.com/questions/12714242/railstutorial-nomethoderror-permanent-raketestcookiejar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!