textbox to session

Can anyone help me out with storing a user's location to session to be
used several times by a user during a login ? I need to create a
textbox where the user enters there zip code and then I need to hold
that zip code value in session to be used for several queries
throughout the user's time within the site. I also would like to
return the user's actual town and state after the zip is submitted but
that is of lesser importance. I think I almost have the controller
code but not quite there yet

def store_location
  session [:location] = params[:location]
end

I think its close although I am new and not totally sure what it is
doing. The view code I don't even know how to start though and I
assume it is only the controller and the 'store location' view that I
need to code for?

Thanks

The code you have there will do what you expect -- it will store
exactly what is on the form submitted to that controller into the
session.

--Michael

thank you
what does the view look like though - I am weakest on the view side
right now, horrible at html,css...

I'll paste a simple controller and an associated view (which includes
a form). That might help.

Here is my login form, in app/views/session/new.rhtml

<div class="contentbody">
<% form_tag(:controller => "session", :action => "create") do -%>
<div><label for="login">Login</label><br/>
<%= text_field_tag 'login' %></div>

<div><label for="password">Password</label><br/>
<%= password_field_tag 'password' %></div>

<div><%= submit_tag 'Log in' %></div>
<% end -%>
</div><!-- contentbody -->

And here is the part of my controller which handles it:

class SessionController < ApplicationController
  def new
  end

  def create
    if using_open_id?
      open_id_authentication(params[:openid_url])
    else
      password_authentication(params[:login], params[:password])
    end
  end

  def destroy
    # self.current_user.forget_me if logged_in?
    cookies.delete :auth_token
    reset_session
    flash[:notice] = "You have been logged out."
    redirect_back_or_default '/'
  end

  def password_authentication(login, password)
    self.current_user = User.authenticate(login, password)
    if logged_in?
      successful_login
    else
      failed_login
    end
  end

  def failed_login(message = "Authentication failed.")
    flash.now[:error] = message
    render :action => 'new'
  end

  def successful_login
    redirect_back_or_default('/')
    flash[:notice] = "Logged in successfully."
  end
end

your the best - thanks a ton

OK I think I have the view working, textbox is there
here is my method in the controller:

def store_location
    session[:location] = params[:location]
    redirect_to :action => 'list'
    flash[:notice] = "your location is "
end

so right now you enter a zipcode and it should be storing it to the
session, the redirect keeps me on the same page and the flash notice
seems to work as well. What I would like to do now is add to that
flash notice the actual value I just stored in the hash...something
like ...flash[:notice] = "your location is " + [session value]

can anyone help with the syntax on this?

BTW does that session code look correct for actualy getting the zip
stored in the session? I have not been able to verify yet becasue I
cant get the flash to return it.

here is my view code just in case you need it...

<%= start_form_tag :action => 'store_location'%>
<%= text_field 'location', nil %>
  <%= submit_tag 'your location' %></form>
<%= end_form_tag %>

look ok?

JR

"Your location is #{params[:location]}" would work.

Note that it is subject to XSS attacks if it is displayed to 3rd
parties. You'd need to escape the HTML in it if it was.

--Michael

it works thanks a ton!!!
i had my quotes messed up - still new