Bien que la fonction de connexion était disponible jusqu'à la dernière fois, il reste un défaut selon lequel il n'est pas possible de savoir quel utilisateur est connecté dans l'état actuel, et la page de liste est accessible sans connexion. Faites avec
Méthode --current_room. Ajouter une méthode d'assistance pour afficher l'utilisateur actuellement connecté
app/helpers/sessions_helper.rb
  #S'il y a un utilisateur connecté, remplacez l'utilisateur
  def current_room
    if session[:room_id]
      @current_room ||= Room.find_by(id: session[:room_id])
    end
  end
app/helpers/sessions_helper.rb
  #Déterminez si vous êtes connecté
  def logged_in?
    !current_room.nil?
  end
app/helpers/sessions_helper.rb
  def log_out
    session.delete(:room_id)
    @current_room = nil
  end
app/controllers/sessions_controller.rb
  def destroy
    log_out
    redirect_to login_path
  end
Page contrôlée par connexion
~
 <div class="header-title">
    <div class="header-title">Liste de réception: 
    <%= current_room.name %>
    <%= link_to "Logout", logout_path, method: :delete %>
    </div>
 </div>
~
app/controllers/receptions_controller.rb
class ReceptionsController < ApplicationController
  before_action :logged_in_room, only: [:index]
~
  private
    def logged_in_room
      unless logged_in?
        flash[:alert] = "une connexion est nécessaire"
        redirect_to login_path
      end
    end
~
Recommended Posts