How do you delete a session variable?

Hi

Let’s say we set session[:foo] = ‘bar’. Now we want to remove the :foo
key completely. How do you do that?

Appearantly, session is a CGI::Session [1] instance, so it doesn’t
have #delete like Hash. I tried:

session[:foo] = nil

But then debug(session) shows an empty :foo key. I’d like to remove
that key, as my session is already pretty crowded. Is it possible?


-Alder

[1] http://ruby-doc.org/core/classes/CGI/Session.html

On Thursday, May 18, 2006, at 11:56 AM, Alder G. wrote:

But then debug(session) shows an empty :foo key. I’d like to remove
that key, as my session is already pretty crowded. Is it possible?


-Alder

[1] http://ruby-doc.org/core/classes/CGI/Session.html


Rails mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails

Will session.delete[“foo”] work?

see http://wiki.rubyonrails.org/rails/pages/HowtoWorkWithSessions for
your
answer.

On 18 May 2006 14:44:35 -0000, Richard W. <

On 18 May 2006 14:44:35 -0000, Richard W.
[email protected] wrote:

session[:foo] = nil
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails

Will session.delete[“foo”] work?

No, since the object returned by #session isn’t a Hash - it’s a
Hash-like instance of CGI::Session. So it doesn’t have the various
Hash intance methods. It does have a #hash method btw, but it does
something entirely different (“Delete the session from storage. Also
closes the storage.”)

On 5/18/06, Chris H. [email protected] wrote:

see
http://wiki.rubyonrails.org/rails/pages/HowtoWorkWithSessions
for your answer.

"
Completely removing a previously-set key/value pair:
[not possible]
"

Ok, guess it’s better than no answer :slight_smile:

Thanks.