3

アプリ/ヘルパー/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

permanentその後、spec/utilities.rb ファイルで、Rake::Test::CookieJar に名前のメソッドが存在しないというエラーが発生し始めました。

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

1 に答える 1

1

同じ問題に遭遇し、修正しました。

彼らはのsign_inメソッドではsessions_helper.rbなく、のsign_inメソッドを参照しているようですspec/support/utilities.rb

私の場合、このヘルパー メソッドにutilities.rbは別の名前が付けられていましたが、名前を変更した後はすべて正常に機能しました :-)

于 2012-10-31T06:02:25.680 に答える