我是Rails的新手,并且试图破坏用户会话时遇到麻烦。 我的会话控制器看起来像这样
class SessionsController < ApplicationController
def new
end
def create
name = params[:name]
password = params[:password]
user = User.authenticate(name, password)
if user.nil?
render json: {isLogin: false}
else
session[:user_id] = user.id
render json: {isLogin: true}
end
end
def destroy
session[:user_id] = nil
puts session[:user_id] # Nothing gets printed to the console here
render json: {isLogin: false}
end
end
当我调用'sessions / destroy'并尝试销毁会话时,在'puts session [:user_id]'行中不会打印任何内容。所以我肯定知道会话在那时是零。但问题是,即使在我销毁该用户的会话之后,我仍然可以从不同的控制器访问这样的会话。
class LessonsController < ApplicationController
def getLesson
userId = session[:user_id]
# do stuff
end
end
为什么会这样?我该如何解决这个问题?。
答案 0 :(得分:0)
尝试
session.delete(:user_id)
而不是
session[:user_id] = nil
这就是我过去的运气。