Logging out feature

Logging out feature,

Code:

def logout
    @title = "Login - Books"

    session[:user_id] != nil
    flash[:notice] = "You have sucessfully been logged out !"
    redirect_to :controller => :books, :action => :index
   end
end

^^when this is run, it logs the user out (nill) and displays you have
successfully been logged out,

Code v2:
def logout
    @title = "Login - Books"

    session[:user_id] != nil
    flash[:notice] = "You have sucessfully been logged out
#{@user.screen_name} !"
    redirect_to :controller => :books, :action => :index
end
end

^^what i was hoping this would do is to display the users name as well,
(this is another task), i understand the session but how can i bring the
session back while the session is nill :S

thanks once again mates,

Jagmit Gabba

Quoting Jagmit Gabba <lists@ruby-forum.com>:

Logging out feature,

Code:

def logout
    @title = "Login - Books"

    session[:user_id] != nil
    flash[:notice] = "You have sucessfully been logged out !"
    redirect_to :controller => :books, :action => :index
   end
end

^^when this is run, it logs the user out (nill) and displays you have
successfully been logged out,

Code v2:
def logout
    @title = "Login - Books"

    session[:user_id] != nil
    flash[:notice] = "You have sucessfully been logged out
#{@user.screen_name} !"
    redirect_to :controller => :books, :action => :index
end
end

^^what i was hoping this would do is to display the users name as well,
(this is another task), i understand the session but how can i bring the
session back while the session is nill :S

Where is the instance variable @user set? If it were my code, I'd do
something like this:

def logout
   @title = "Login - Books"

   name = User.find(session[:user_id])
   session[:user_id] != nil
   flash[:notice] = "You have sucessfully been logged out #{name}!"
   redirect_to :controller => :books, :action => :index
end

HTH,
  Jeffrey

Jeffrey L. Taylor wrote:

Quoting Jagmit Gabba <lists@ruby-forum.com>:

   end
    flash[:notice] = "You have sucessfully been logged out
#{@user.screen_name} !"
    redirect_to :controller => :books, :action => :index
end
end

^^what i was hoping this would do is to display the users name as well,
(this is another task), i understand the session but how can i bring the
session back while the session is nill :S

Where is the instance variable @user set? If it were my code, I'd do
something like this:

def logout
   @title = "Login - Books"

   name = User.find(session[:user_id])
   session[:user_id] != nil
   flash[:notice] = "You have sucessfully been logged out #{name}!"
   redirect_to :controller => :books, :action => :index
end

HTH,
  Jeffrey

Good afternoon friend,

Your code doesnt seem to be working as it gives me a SyntaxError, at the
end i added another end cause of the nill, it seems to work but the only
thing which is displayed is "You have successfully been logged out #!"
just that, no username.

Quoting Jagmit Gabba <lists@ruby-forum.com>:

Jeffrey L. Taylor wrote:
> Quoting Jagmit Gabba <lists@ruby-forum.com>:
>> end
>> flash[:notice] = "You have sucessfully been logged out
>> #{@user.screen_name} !"
>> redirect_to :controller => :books, :action => :index
>> end
>> end
>>
>> ^^what i was hoping this would do is to display the users name as well,
>> (this is another task), i understand the session but how can i bring the
>> session back while the session is nill :S
>>
>
> Where is the instance variable @user set? If it were my code, I'd do
> something like this:
>
> def logout
> @title = "Login - Books"
>
> name = User.find(session[:user_id])
> session[:user_id] != nil
> flash[:notice] = "You have sucessfully been logged out #{name}!"
> redirect_to :controller => :books, :action => :index
> end
>
> HTH,
> Jeffrey

Good afternoon friend,

Your code doesnt seem to be working as it gives me a SyntaxError, at the
end i added another end cause of the nill, it seems to work but the only
thing which is displayed is "You have successfully been logged out #!"
just that, no username.

Oops, change:
      name = User.find(session[:user_id])

To:
      name = User.find(session[:user_id], :select => 'screen_name').screen_name

Or maybe clearer:

  def logout
    @title = "Login - Books"

    user = User.find(session[:user_id], :select => 'screen_name')
    session[:user_id] != nil
    flash[:notice] = "You have sucessfully been logged out #{user.screen_name}!"
    redirect_to :controller => :books, :action => :index
  end

And yes, you need the additional end to close the class.

Jeffrey

Logging out feature,

Code:

def logout
@title = "Login - Books"

session[:user_id] != nil

Do you mean
session[:user_id] = nil

Colin

Thank you very much Jeffrey and Colin...

:slight_smile:

It worked perfectly and change the != to =