--Créer un contrôleur de session
MacBook % rails g controller Sessions new
--Modifiez le fichier de routes comme suit
config/routes
Rails.application.routes.draw do
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
~
app/views/sessions/new.html.erb
<body>
  <h1>Login</h1>
  <%= form_for(:session, url: login_path) do |f| %>
    <div class="input-name">
      <%= f.label :password, 'Nom de la salle' %>
      <%= f.text_field :name, placeholder: "Veuillez saisir le nom de la chambre" %>
    </div>
    <div class="form-group">
      <%= f.label :password, 'mot de passe' %>
      <%= f.password_field :password, placeholder: 's'il vous plait entrez votre mot de passe' %>
      <%= f.submit 'S'identifier' %>
    </div>
  <% end %>
</body>
--Créez un formulaire et accédez à http: // localhost: 3000 / login pour vérifier
app/controllers/sessions_controller.rb
class SessionsController < ApplicationController
  def new
  end
  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
    else
    end
  end
  def destroy
  end
end
app/controllers/sessions_controller.rb
~
  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
    else
      flash[:alert] = 'Le nom ou le mot de passe est incorrect'
      redirect_to '/login'
    end
  end
~
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  include SessionsHelper
end
--Définir la méthode d'assistance, méthode log_in
app/helpers/sessions_helper.rb
module SessionsHelper
  #Stockez le roomID chiffré dans des cookies temporaires dans le navigateur
  def log_in(room)
    session[:room_id] = room.id
  end
end
/app/controllers/sessions_controller.rb
~
  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
      log_in room
      redirect_to receptions_path
    else
      flash[:alert] = 'Le nom ou le mot de passe est incorrect'
      redirect_to '/login'
    end
  end
~
(https://qiita.com/yongjugithub/items/dbb880f085f99cc9af93)
Recommended Posts