New Session?

Is there a method for determining whether or not the session is a NEW
session? For example. the first request of a session I want to be
able to perform an action. Subsequent requests under the same session
id, I do not want to execute the action.


I don't know of a method, but you could do something like

if session[:my_var].nil?
  # it's a new session
  # do some funky stuff
  session[:my_var] = my_value


You could look if certain session attribute was set or not. In case it
wasn't, it was the first time you requested it and you could call that
action and eventually set this session attribute for the next request:

if session[:first_time].nil?
  session[:first_time] = true


TomRossi7 escribió:

Thanks for the responses Borja and Phillip! Those methods would
definitely do what I want, I was just hoping their was a better way to
do it without creating a new session variable. You would think there
is a hook somewhere when the session id is created?

-- Tom

You will not burn in hell for creating additional session variables,
especially an int. Some people (not me of course) stick entire
ActiveRecord objects in their sessions without harm.

Besides all that, aren't _you_ the one creating the session id to
start with? The line right below there is your opportunity to do your
one-time-only stuff.

Hah! I'm not concerned with my eternal security, just trying to have
beautiful code with minimal overhead. The session id is created by
the rails framework and that is why I was thinking their may be a hook
or attribute somewhere I could access (kinda like ActiveRecord's
new_record? method).