J'ai défini root_path sur quelque chose qui ressemble à un ** écran d'accueil ** que je souhaite afficher après la connexion. Les utilisateurs qui ne sont pas connectés seront configurés pour accéder à la ** page d'introduction de l'application **
Comme écrit sur cette page, il utilise ** devise **. Si vous n'avez pas encore installé l'appareil, veuillez le faire avant de revenir à cette page. Passons maintenant au sujet principal Tout d'abord, modifiez la description du contrôleur.
photos_controller.rb
class PhotosController < ApplicationController
before_action :move_to_index #Ajouter ici
def index
end
#Ajoutez ce qui suit à partir d'ici
private
def move_to_index
unless user_signed_in?
redirect_to controller: :homes, action: :index
end
end
end
J'expliquerai ce que tu fais d'en haut before_action :move_to_index before_action est utilisé pour faire quelque chose avant que toutes les actions du contrôleur ne soient exécutées. Une méthode appelée move_to_index est spécifiée pour cette before_action. Puisqu'il s'agit d'une méthode, la description ici est différente pour tout le monde Alors, où définissez-vous cette méthode? ?? Je l'expliquerai plus tard.
private Une méthode qui ne peut pas être appelée depuis l'extérieur de la classe. Dans Ruby, le code suivant décrit comme privé est une méthode privée. Mon interprétation est que c'est une méthode qui ne peut être utilisée que dans ce contrôleur. Je suis désolé si c'est différent ...
def move_to_index Move_to_index est défini ici. Cela conduit à before_action: move_to_index plus tôt. Voyons ce que fait le move_to_index
unless user_signed_in? user_signed_in? est une méthode d'assistance qui peut être utilisée en insérant un appareil ** Déterminez si l'utilisateur est connecté ** Cela signifie que s'il n'y a pas à moins que ~ là Lorsque ce mot vient, si vous n'êtes pas connecté, passez à la ligne suivante avec ~
redirect_to controller: :homes, action: :index Parce que la phrase est un peu longue Tout d'abord, faites attention à ** redirect_to ** Ceci est une méthode ** qui peut passer à l'URL spécifiée ** Alors
controller.rb
redirect_to "http://www.○○○○.com"
Mais tu peux
controller.rb
redirect_to root_path
Vous pouvez également spécifier le nom du préfixe comme
controller.rb
redirect_to controller: :homes, action: :index
Vous pouvez également spécifier l'action du dernier contrôleur spécifié
Vous pouvez faire d'autres choses, alors recherchez-les.
C'est le flux ** Lisez d'abord la méthode mobe_to_index avec before_action avant de charger l'index. Si l'utilisateur n'est pas connecté, vous pouvez le définir en passant à ici. ** **
Avec le contrôleur
redirect_to controller: :homes, action: :index
Est décrit à la fin L'action d'index du contrôleur domotique est appelée
routes.rb
get '/homes/home', to:'homes#index'
Décrire
** / homes / home est la spécification du nom de l'URL **
Ça ressemble à ça.
Et ** homes # index **
Spécifie l'action d'index pour le contrôleur domotique
C'est tout