[RUBY] Beim Abmelden mit devise zur Bestätigungsseite wechseln

Einführung

Ich habe eine Anmelde- / Abmeldefunktion implementiert, die Geräte auf Schienen verwendet. Ich habe beim Abmelden den Übergang zur Bestätigungsseite implementiert Ich bin gestolpert, also schreibe ich einen Artikel. Wenn es einen besseren Weg gibt, schreiben Sie ihn bitte in den Kommentarbereich oder bearbeiten Sie die Anfrage. : bow_tone2:

Versionsinformation

Voraussetzungen

Controller wechseln

** reply_to_on_destroy ** von session_controller wird standardmäßig beschrieben Es sollte in root_path überführt werden. Löschen Sie also den Code hier. Sie können zur URL-Zielseite wechseln, indem Sie dort ** render'transition target URL '** schreiben.

 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?
 reply_to_on_destroy #Standardbeschreibung ← Code entfernt
 render'Transitionsziel-URL '# Beschreiben Sie die Übergangsziel-URL mit render ← Geben Sie den Code ein
end

Ansicht erstellen

Ich habe eine Datei destroy.html.haml in users / destroy erstellt.

python


%h1 Sie haben sich abgemeldet.
= link_to "Zurück zu meiner Seite", "/"

destroy.png

Controller-Anpassung

** sesstions: Benutzerdefinierte Sitzungen durch Hinzufügen von "Benutzern / Sitzungen" **! !!

python


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

Anpassung des Routings

Passen Sie auch Ihr Routing an! HTTP-Methode **: Löschen **, URL, Controller-Name # Aktionsname

  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' #Nachtrag
  end

Setze die beiden zusammen routes.rb


  devise_for :users, controllers: {
    registrations: "users/registrations",
    sessions: "users/sessions" #Anpassen
  }
  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' #Nachtrag
  end

Zusammenfassung

Ich hatte das Gefühl, MVC immer noch nicht zu verstehen. Es war ein Problem, das ich sofort lösen konnte, nachdem ich ruhig nachgedacht hatte. Und es fällt mir schwer, Abschriften zu schreiben. Es hat viel Zeit gekostet, einen Artikel zu schreiben, also muss ich schnell sein ... Ich werde mehr ausgeben.

Shouma </ font>

Recommended Posts

Beim Abmelden mit devise zur Bestätigungsseite wechseln
Fügen Sie ein Element hinzu, wenn Sie sich mit devise anmelden
6 Punkte zu bezweifeln, wenn eine Benutzerregistrierung mit devise nicht möglich ist
Erstellen Sie meine Seite mit Rails
Wenn ich versuche, mich bei devise anzumelden, wird automatisch zu root_path umgeleitet
So behandeln Sie Anmeldefehler mit devise
[Laravel] Umgang mit Fehlern aufgrund von Speichermangel, wenn Komponisten [Docker] benötigen
So löschen Sie eine Ressourcendatei mit Spring-Boot