如果您观看任何与 Ryan Bates 身份验证相关的 Railscast,您会在创建 sigin/signout 功能时看到一个反复出现的主题,我想更清楚地理解这一点。
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
例如,通常在会话控制器中,创建操作将包含对会话哈希的分配,例如session[:user_id] = user.id
假设变量 user 设置为 Active Record 对象。
然后在整个视图中使用上述辅助方法来查找当前登录的用户。
但是,当退出销毁操作时,仅包含该行session[:user_id] = nil
我的问题是也不@current_user
需要设置为零,因为它将设置为以前登录的用户?