[ruby-on-rails] 레일에서 세션을 비우거나 파괴하는 방법?

어디에서나 찾을 수없는 것 같습니다 … Rails에서 사용자 세션을 삭제 / 파기 / 재설정 / 빈 / 지우려면 어떻게해야합니까? 하나의 가치 만이 아니라 모든 것 ..



답변

모든 것을 지우려면 컨트롤러에서 reset_session 메소드를 사용하십시오.

reset_session

이 방법에 대한 설명서는 다음과 같습니다. http://api.rubyonrails.org/classes/ActionController/Base.html#M000668

저장된 모든 개체를 지우고 새 세션 개체를 초기화하여 세션을 재설정합니다.

행운을 빕니다!


답변

rails의 session은 해시 객체입니다. 따라서 해시 지우기에 사용 가능한 모든 기능은 세션에서 작동합니다.

session.clear

또는 특정 키를 폐기해야하는 경우 :

session.delete(key)

레일 3.2에서 테스트

추가

사람들이 언급 한 session={}것은 나쁜 생각입니다. 관련하여 session.clear, Lobati 그것은이 session.clear가하는 것 이상으로 다른 청소를하지 당신이 더 나은 [session.clear보다] reset_session를 사용하여 떨어져 아마 것처럼 보이는 의견 -. 내부적으로 reset_session는 session.destroy 호출 , 그 자체가 아니라 다른 물건을 명확 호출합니다.


답변

사용자 세션을 삭제하려면

session.delete(:user_id)


답변

특정 매개 변수 만 지우려면 다음을 사용할 수 있습니다.

[:param1, :param2, :param3].each { |k| session.delete(k) }


답변

이 코드를 ApplicationController에 추가하십시오.

def reset_session
  @_request.reset_session
end

(내 문제를 해결했을 때 위의 아무도이 코드를 언급하지 않는 이유를 모르겠습니다)
http://apidock.com/rails/ActionController/RackDelegation/reset_session


답변