Hypothèse: Cette fois, l'opération sera effectuée avec le contrôleur d'articles.
class ItemsController < ApplicationController
before_action :move_to_signed_in, except: [:index]
def index
#Génération de page supérieure
end
private
def move_to_signed_in
unless user_signed_in?
#Les utilisateurs qui ne sont pas connectés verront la page de connexion
redirect_to '/users/sign_in'
end
end
before_action :move_to_signed_in, except: [:index]
before_action → Une méthode qui peut effectuer le traitement commun spécifié avant que l'action définie dans le contrôleur ne soit exécutée. sauf: [: index] → l'action d'index est exclue -Lorsque d'autres actions sont exécutées à l'exception de l'action d'index, move_to_signed_in est traité. En d'autres termes, lorsque la page d'accueil est affichée, le processus move_to_signed_in n'est pas exécuté.
def move_to_signed_in
unless user_signed_in?
#Les utilisateurs qui ne sont pas connectés verront la page de connexion
redirect_to '/users/sign_in'
end
user_signed_in? → Déterminer si l'utilisateur est connecté à moins que → "sinon" sauf si user_signed_in? → Si l'utilisateur n'est pas connecté redirect_to '/ users / sign_in' → Transit vers la page de connexion
Si l'utilisateur tente d'effectuer une action autre que l'action d'index (telle que créer) Déterminez si vous êtes un utilisateur connecté. Si l'utilisateur n'est pas connecté, l'écran passera à la page de connexion (/ users / sign_in). Si vous pouvez vous connecter, vous pouvez effectuer l'action spécifiée par l'utilisateur.