Não consigo encontrá-lo em nenhum lugar ... Como excluir / destruir / redefinir / esvaziar / limpar a sessão de um usuário no Rails? Não apenas um valor, mas a coisa toda ..
133
Não consigo encontrá-lo em nenhum lugar ... Como excluir / destruir / redefinir / esvaziar / limpar a sessão de um usuário no Rails? Não apenas um valor, mas a coisa toda ..
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.
ou se chaves específicas tiverem que ser destruídas:
Testado nos trilhos 3.2
adicionado
As pessoas mencionaram por
session={}
é uma má ideia. A respeitosession.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.fonte
reset_session
, como faz algumas outras limpezas além do quesession.clear
acontece. Internamente, asreset_session
chamadassession.destroy
, que também chamam declear
outras coisas .excluir a sessão de um usuário
fonte
Para limpar apenas determinados parâmetros, você pode usar:
fonte
adicione esse código ao seu ApplicationController
(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
fonte
@_request.reset_session
ereset_session
ambos funcionam e talvez façam a mesma coisa?