[RUBY] Passer à la page de confirmation lors de la déconnexion avec l'appareil

introduction

J'ai implémenté une fonction de connexion / déconnexion qui utilise le dispositif sur rails. J'étais en train de passer à la page de confirmation lors de la déconnexion J'ai trébuché, alors je vais écrire un article. S'il existe un meilleur moyen, veuillez l'écrire dans la section des commentaires ou modifier la demande. : bow_tone2:

information sur la version

Conditions préalables

--Description de haml (gem'haml-rails ') --devise est installé et vous pouvez vous connecter

Changement de contrôleur

** respond_to_on_destroy ** de sessions_controller est décrit par défaut Il était censé être transféré vers root_path. Supprimez donc le code ici. Vous pouvez accéder à la page de destination de l'URL en y écrivant ** render'URL de destination de la transition '**.

 controllers/users/sessions_controller.rb

def destroy
  signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
  set_flash_message! :notice, :signed_out if signed_out
  yield if block_given?
 respond_to_on_destroy #Default description ← Code supprimé
 render'URL de destination de la transition '# Décrivez l'URL de destination de la transition avec le rendu ← Entrez le code
end

Créer une vue

J'ai créé un fichier destroy.html.haml dans users / destroy.

python


%h1 Vous vous êtes déconnecté.
= link_to "Revenir à ma page", "/"

destroy.png

Personnalisation du contrôleur

** sessions: sessions personnalisées en ajoutant "utilisateurs / sessions" **! !!

python


  devise_for :users, controllers: {
    registrations: "users/registrations",
    sessions: "users/sessions" #Personnaliser
  }

Personnalisation du routage

Personnalisez également votre routage! Méthode HTTP **: supprimer **, URL, nom du contrôleur # nom de l'action

  devise_scope :user do
    get 'profiles', to: 'users/registrations#new_profile'
    post 'profiles', to: 'users/registrations#create_profile'
    get 'addresses', to: 'users/registrations#new_address'
    post 'addresses', to: 'users/registrations#create_address'
    delete 'users/destroy', to: 'devise/sessions#destroy' #Postscript
  end

Mettez les deux ensemble routes.rb


  devise_for :users, controllers: {
    registrations: "users/registrations",
    sessions: "users/sessions" #Personnaliser
  }
  devise_scope :user do
    get 'profiles', to: 'users/registrations#new_profile'
    post 'profiles', to: 'users/registrations#create_profile'
    get 'addresses', to: 'users/registrations#new_address'
    post 'addresses', to: 'users/registrations#create_address'
    delete 'users/destroy', to: 'devise/sessions#destroy' #Postscript
  end

Sommaire

J'ai senti que je ne comprenais toujours pas MVC. C'était un problème que je pouvais résoudre immédiatement après avoir réfléchi calmement. Et j'ai du mal à rédiger des démarques. Il a fallu beaucoup de temps pour écrire un article, donc je dois être rapide ... Je sortirai plus.

Shouma </ font>

Recommended Posts

Passer à la page de confirmation lors de la déconnexion avec l'appareil
Ajouter un élément lors de la connexion avec un appareil
6 points de doute lorsque l'enregistrement de l'utilisateur n'est pas possible avec l'appareil
Créer ma page avec Rails
Lorsque j'essaye de m'inscrire avec devise, il redirige automatiquement vers root_path
Comment gérer les erreurs de connexion avec l'appareil
[Laravel] Comment gérer une erreur de mémoire insuffisante lorsque le compositeur a besoin de [Docker]
Comment sortir un fichier de ressources avec spring-boot