I''m doing a simple demo on a windows box, showing how simple it is to
do a user login page, using code from the Agile Programming with Rails
book.
Unfortunately, it''s not acting simple.
This is the view for the login.
<% @page_title = ''Login'' %>
<%= error_messages_for ''user'' %>
<h1>Login</h1>
<% if session[:user_id] %>
<%= start_form_tag :action => ''login'' %>
  <%= render :partial => ''users/form'' %>
  <%= submit_tag "Login" %>
<%= end_form_tag %>
<% else %>
<p>You are logged-in.</p>
<% end %>
<% if session[:user_id] %>
<p>You can logout here.</p>
    <%= link_to ''Logout'', :action =>
''logout'' %>
<% end %>
Even though both of these sections depend on the :user_id symbol in the
session hash, the first one is working and the second is not.
Also, while logout will run when told, for some reason it stays
logged-in.
Here are the login and logout actions.
def login
        if request.get?
            session[:user_id] = nil
            @user = User.new
        else
            @user = User.new(params[:user])
            begin
                logged_in_user = @user.try_to_login
            rescue
                flash[:notice] = "System error in login attempt!"
                render
            end
            if logged_in_user
                session[:user_id] = logged_in_user.id
                flash[:notice] = "Logged in as
#{logged_in_user.name}!"
                redirect_to(:controller => ''login'', :action
=> ''index'')
            else
                flash[:notice] = "Invalid user/password combination"
            end
        end
  end
  def logout
    session[:user_id] = nil
    flash[:notice] = "You are logged-out"
    redirect_to(:action => ''index'')
  end
I''m lost. I''m doing something similar on a linux box and it
works fine.
Is this a problem with Rails on Windows?
Thanks,
Mike
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
#First change the view to be
<%= error_messages_for ''user'' %>
<h1><%= @page_title || ''Login''</h1>
<% if @logged_in? -%>
<%= start_form_tag :action => ''login'' %>
  <%= render :partial => ''users/form'' %>
  <%= submit_tag "Login" %>
<%= end_form_tag %>
<% else -%>
<p>You are logged-in.</p>
<% end -%>
<% if @logged_in? -%>
<p>You can logout here.</p>
    <%= link_to ''Logout'', :action =>
''logout'' %>
<% end -%>
#Then add this to your calling action
@page_title = ''Login''
@logged_in = (session[:user_id] == nil)
#and no as bad as windows is it is not causing this error
#in future try commenting out and dumping your if conditions
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
#First change the view to be
 <%= error_messages_for ''user'' %>
 <h1><%= @page_title || ''Login'' %></h1>
 <% if @logged_in? -%>
 <%= start_form_tag :action => ''login'' %>
   <%= render :partial => ''users/form'' %>
   <%= submit_tag "Login" %>
 <%= end_form_tag %>
 <% else -%>
 <p>You are logged-in.</p>
 <% end -%>
 <% if @logged_in? -%>
 <p>You can logout here.</p>
     <%= link_to ''Logout'', :action =>
''logout'' %>
 <% end -%>
 #Then add this to your calling action
 @page_title = ''Login''
 @logged_in = (session[:user_id] == nil)
 #and no as bad as windows is it is not causing this error
 #in future try commenting out and dumping your if conditions
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Keynan Pratt wrote:> #First change the view to be > > <%= error_messages_for ''user'' %> > > <h1><%= @page_title || ''Login'' %></h1> > > <% if @logged_in? -%>What provides @logged_in? ? That looks like a method call but you''re referencing it like an instance variable, and it''s nowhere in my code. I do see that my logic was bad here, but worse, in my controller, if you visit the login page you are logged-out. This was the core issue. Thanks, Mike --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---