Respostas:
Para limpar tudo, use o método reset_session em um controlador.
reset_session
Aqui está a documentação sobre este método: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Redefine a sessão limpando todos os objetos armazenados e inicializando um novo objeto de sessão.
Boa sorte!
a sessão nos trilhos é um objeto hash. Portanto, qualquer função disponível para limpar o hash funcionará com as sessões.
session.clear
ou se chaves específicas tiverem que ser destruídas:
session.delete(key)
Testado nos trilhos 3.2
adicionado
As pessoas mencionaram por session={}
é uma má ideia. A respeito session.clear
, Lobati comenta - Parece que você provavelmente está melhor usando reset_session [do que session.clear], como ele faz algumas outras limpezas além do que o session.clear faz. Internamente, reset_session chama session.destroy , que por si só chama claro, além de outras coisas.
reset_session
, como faz algumas outras limpezas além do que session.clear
acontece. Internamente, as reset_session
chamadassession.destroy
, que também chamam de clear
outras coisas .
Para limpar apenas determinados parâmetros, você pode usar:
[:param1, :param2, :param3].each { |k| session.delete(k) }
adicione esse código ao seu ApplicationController
def reset_session
@_request.reset_session
end
(Não sei por que ninguém acima apenas mencionou esse código, pois corrigiu meu problema) http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
e reset_session
ambos funcionam e talvez façam a mesma coisa?