app/helpers/session_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/Utities.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)>'发布于 2012-10-31 14:02:26
只是遇到了同样的问题,并得到了解决。
似乎他们指的不是sessions_helper.rb中的sign_in方法,而是spec/support/utilities.rb中的sign_in方法
在我的例子中,utilities.rb中的这个帮助器方法有一个不同的名称,重命名后一切正常:-)
https://stackoverflow.com/questions/12714242
复制相似问题