Skip to content

Instantly share code, notes, and snippets.

@Bahanix
Created April 25, 2016 14:27
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Bahanix/275fd0dbcf8b1483284d4dbe0c72d64d to your computer and use it in GitHub Desktop.
Save Bahanix/275fd0dbcf8b1483284d4dbe0c72d64d to your computer and use it in GitHub Desktop.
OpenClassRooms Ruby on Rails logout
# app/views/users/home.html.erb
<% if @current_user %>
<h1>Bienvenue <%= @current_user.name %> !</h1>
<%= form_tag "/users/login", method: :delete do %>
<input type="submit" value="Déconnexion" />
<% end %>
<% else %>
<h1>Bienvenue visiteur anonyme !</h1>
<a href="/users/login">S'identifier</a>
<% end %>
# config/routes.rb
Rails.application.routes.draw do
get 'users/home' => 'users#home'
get 'users/login' => 'users#login'
delete 'users/login' => 'users#logout'
post 'users/login' => 'users#check'
end
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def home
if session[:user_id]
@current_user = User.find(session[:user_id])
end
end
def login
end
def logout
session[:user_id] = nil
flash[:info] = "Vous êtes maintenant déconnecté."
redirect_to "/users/home"
end
def check
@current_user = User.where(name: params[:name], password: params[:password]).first
if @current_user
session[:user_id] = @current_user.id
flash[:info] = "Vous êtes maintenant connecté"
redirect_to "/users/home"
else
session[:user_id] = nil
flash[:info] = "Échec de la connexion"
redirect_to "/users/login"
end
end
end
@RaphaelTrackoen
Copy link

Why do you redirect to /users/home ? Shouldn't you redirect to /users/login ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment