我在 RSpec 中找不到 valid_session 的示例,现在我所有的脚手架测试在添加授权后都被破坏了。
通过 Michael Hartl 的 Rails 教程,我正在使用此处描述的身份验证,除了我需要登录所有页面并使用“skip_before_filter”进行登录等。
我添加了一个用户固定装置,我已经验证它已加载:
userexample:
id: 1
name: Example Name
email: examplename@example.com
password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie
remember_token: YXjPrFfsK8SFQOQDEa90ow
然后在控制器规范中
def valid_session
{ remember_token: "YXjPrFfsK8SFQOQDEa90ow" }
end
会话助手的代码
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
return !current_user.nil?
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
我是否按预期使用了valid_session?在没有使用 sign_in 显式登录用户的情况下,是否会在会话中提供 remember_token?这可以通过其他方式解决吗?