[RUBY] [Rails pour débutants] Spécifiez la destination de la transition après vous être connecté à plusieurs modèles Devise

Lors de la création d'un administrateur (admin), côté client (client / utilisateur, etc.), je souhaite spécifier la destination de la redirection après chaque connexion.

supposition

-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)

la mise en oeuvre

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)

prime

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

[Rails pour débutants] Spécifiez la destination de la transition après vous être connecté à plusieurs modèles Devise
(Pour les débutants) [Rails] Installer Devise
[Rails] Gérez plusieurs modèles à l'aide de la gemme de devise
[Pour les débutants] Comment déboguer avec Eclipse
[Rails] Comment implémenter un test unitaire d'un modèle
[Validation] rails Comment spécifier après la date d'aujourd'hui
[Rails] Ajouté dans le modèle: nom d'utilisateur non ajouté à la base de données
[rails devise] Comment transférer les utilisateurs qui ne sont pas connectés à la page de connexion
Je souhaite modifier le chemin après une nouvelle inscription après m'être connecté avec plusieurs appareils.
[Pour les débutants] Comment utiliser Stream API après Java 8
[Pour les débutants de Rails] Implémentation de la fonction de recherche multiple sans Gem
[Pour les débutants] Exemple minimum pour afficher RecyclerView en Java
Les débutants utilisent ubuntu dans la fenêtre pour préparer l'environnement des rails
[Rails] Traitement après l'ajout d'une colonne à la table de devise
Tutoriel pour créer un blog avec Rails pour les débutants Partie 1
Fournir une barre de recherche dans Rails ~ Effectuer une recherche en joignant plusieurs tables
Super facile en 2 étapes! Comment installer la devise! !! (version rails 5)
Options pour les rails nouveaux et réglages à effectuer après les rails neufs
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0