0
如果您观看任何与Ryan Bates身份验证相关的Railscast,则在创建签名/签出功能时会看到反复出现的主题,并且我想更清楚地理解一点。在Rails中登录会话助手
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
例如通常在会话控制器的创建操作将包含一个分配给会话散列如session[:user_id] = user.id
鉴于变量用户被设置为一个有效记录的对象。
然后在整个视图中使用上述帮手方法来查找当前登录的用户。
但是注销时,销毁行动中只包含session[:user_id] = nil
是不会@current_user
还需要我的问题设置为零,因为它会被设置为在签署之前的用户线?
K谢谢!说得通。因此,只要页面在下一个请求中重定向,就会再次载入“@ current_user”,而不是包含之前签名用户的user_id,而本质上是'@current_user = nil || User.find(session [:user_id])if session [:user_id]?' – rssathe 2013-02-28 23:58:36