0
레일스에 새로운 기능이있어서 사용자 세션을 파괴하는 데 문제가 있습니다. 내가 전화 '세션/파괴'와, 아무것도에 인쇄되지됩니다 세션을 파괴하려고하면 내 세션 컨트롤러이Rails 세션 [: user_id]은 (는) 파괴하지 않습니다.
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
처럼 보이는 '세션두고 [을 : USER_ID]'라인. 그래서 그 세션이 그 시점에서 아무 것도 없다는 것을 확실히 알고 있습니다. 그러나 문제는 해당 사용자에 대한 세션을 삭제 한 후에도 다른 컨트롤러에서 이와 같은 세션에 계속 액세스 할 수 있다는 것입니다.
class LessonsController < ApplicationController
def getLesson
userId = session[:user_id]
# do stuff
end
end
왜 이런 일이 발생합니까? 어떻게 해결할 수 있습니까?
경로를 어떻게 부르십니까? 경로를 어떻게 정의 했습니까? 'getLesson'에서; 무엇이 인쇄됩니까? – Ven
이 *는 [레일스에서 세션 변수를 지우는 가장 좋은 방법은 무엇입니까?]와 중복 될 수 있습니다. (http://stackoverflow.com/questions/3995816/what-is-the-best-way-to-clear -a-session-variable-in-rails) – Ven
음 .. 루비 콘솔에 'puts nil'을 해봅시다. ;) – siegy22