-Il existe un modèle d'administration et un modèle client comme modèles d'utilisation de l'appareil (veuillez remplacer le nom du modèle)
application_controller.erb
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
case resource
when Admin
admin_top_path #Pour le chemin, spécifiez le chemin vers la destination de transition que vous souhaitez définir.
when Customer
root_path #N'hésitez pas à changer de chemin ici aussi
end
end
end
C'est facile à écrire et cela semble facile à retenir.
Laissez-moi vous expliquer un peu la description!
-
After_sign_in_path_for (resource)
Les informations d'argument (ressource) sont utilisées pour le branchement conditionnel.
-La déclaration de cas divise le traitement selon que le contenu de l'instance de CV est Admin ou Client.
Si vous cherchez jusqu'ici, d'où vient la ressource et pourquoi est-elle nommée ainsi? Je me suis demandé si @user pouvait être utilisé, alors je l'ai recherché. (Veuillez voir ci-dessous uniquement pour ceux qui sont intéressés)
ruby:registrations/new.html.erb
<h2>Sign up</h2>
<%= form_for(resource, as: resource_name, url: new_customer_registration_path(resource_name)) do |f| %>
#Omis ci-dessous
Le code ci-dessus est l'une des pages d'affichage qui est automatiquement générée lors de l'utilisation de Devise. J'ai fait des recherches. ↓
-Devise est un framework qui peut gérer l'authentification pour plusieurs modèles en même temps, il semble donc qu'il soit défini de manière à ce que l'instance de modèle arrive peu importe. Il semble qu'à l'intérieur de Devise, il est unifié afin qu'il puisse être référencé par le nom ** resource **. De même, les informations sur le modèle que vous essayez d'authentifier semblent être disponibles sous le nom ** resource_name **. -Bien que ** (resource_name) ** soit inclus dans l'url, il semble que ** (resource_name) ** soit requis car il n'est pas possible de savoir quel modèle est enregistré avec juste `` new_customer_registration_path ''.
Cela a peut-être été un peu insatisfaisant, mais c'était une bonne occasion d'approfondir les parties qui étaient généralement trop pratiques à mettre en œuvre sans réfléchir. Je suis un nouveau venu avec plusieurs mois d'expérience en programmation, alors veuillez signaler toute partie étrange,!
Recommended Posts