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 =