[RUBY] [Schienen für Anfänger] Geben Sie das Übergangsziel an, nachdem Sie sich bei mehreren Devise-Modellen angemeldet haben

Beim Erstellen eines Administrators (Administrator), einer Kundenseite (Kunde / Benutzer usw.) möchte ich nach jeder Anmeldung das Umleitungsziel angeben.

Annahme

-Es gibt Admin-Modell und Kundenmodell als Entwicklungsmodelle (bitte ersetzen Sie den Modellnamen)

Implementierung

application_controller.erb


class ApplicationController < ActionController::Base

  def after_sign_in_path_for(resource)
    case resource
    when Admin
      admin_top_path          #Geben Sie als Pfad den Pfad zum Übergangsziel an, das Sie festlegen möchten.
    when Customer
      root_path              #Sie können auch hier den Pfad ändern
    end
  end

end

Es ist leicht zu schreiben und es scheint leicht zu merken zu sein. Lassen Sie mich ein wenig über die Beschreibung erklären! -`After_sign_in_path_for (Ressource)` Argument (Ressource) Informationen werden für die bedingte Verzweigung verwendet. -Die case-Anweisung unterteilt die Verarbeitung in Abhängigkeit davon, ob der Inhalt der Lebenslaufinstanz Admin oder Kunde ist. Wenn Sie bisher nachschlagen, woher kommt die Ressource und warum heißt sie so? Ich habe mich gefragt, ob @user verwendet werden kann, also habe ich nachgeschlagen. (Bitte sehen Sie unten nur für diejenigen, die interessiert sind)

Bonus

ruby:registrations/new.html.erb


<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: new_customer_registration_path(resource_name)) do |f| %>
#Unten weggelassen

Der obige Code ist eine der Ansichtsseiten, die bei Verwendung von Devise automatisch generiert wird. Ich habe etwas recherchiert. ↓

-Devise ist ein Framework, das die Authentifizierung für mehrere Modelle gleichzeitig verarbeiten kann. Es scheint also so definiert zu sein, dass es keine Rolle spielt, welche Modellinstanz kommt. Es scheint, dass es in Devise vereinheitlicht ist, so dass es mit dem Namen ** resource ** bezeichnet werden kann. Ebenso scheinen Informationen darüber, welches Modell Sie authentifizieren möchten, unter dem Namen ** Ressourcenname ** verfügbar zu sein. -Obwohl ** (Ressourcenname) ** in der URL enthalten ist, scheint ** (Ressourcenname) ** erforderlich zu sein, da nicht bekannt ist, welches Modell nur mit `` `new_customer_registration_path``` registriert ist.

Es mag ein wenig unbefriedigend gewesen sein, aber es war eine gute Gelegenheit, tiefer in die Teile einzutauchen, die normalerweise zu bequem waren, um ohne nachzudenken implementiert zu werden. Ich bin ein Neuling mit mehrmonatiger Programmiererfahrung. Bitte weisen Sie auf merkwürdige Teile hin.

Recommended Posts

[Schienen für Anfänger] Geben Sie das Übergangsziel an, nachdem Sie sich bei mehreren Devise-Modellen angemeldet haben
(Für Anfänger) [Rails] Installieren Sie das Gerät
[Schienen] Verwalten Sie mehrere Modelle mit einem Edelstein
[Für Anfänger] So debuggen Sie mit Eclipse
[Rails] So implementieren Sie einen Unit-Test eines Modells
[Validierung] Schienen Wie nach dem heutigen Datum angeben
[Schienen] In Gerät hinzugefügt: Benutzername nicht zur Datenbank hinzugefügt
[Rails Devise] So wechseln Sie Benutzer, die nicht auf der Anmeldeseite angemeldet sind
Ich möchte den Pfad nach der neuen Registrierung ändern, nachdem ich mich mit mehreren Geräten angemeldet habe.
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
[Für Anfänger von Rails] Mehrfachsuchfunktion ohne Gem implementiert
[Für Anfänger] Mindestbeispiel für die Anzeige von RecyclerView in Java
Anfänger verwenden Ubuntu im Fenster, um die Schienenumgebung vorzubereiten
[Rails] Verarbeitung nach Hinzufügen einer Spalte zur Entwicklertabelle
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 1
Bereitstellen einer Suchleiste in Rails ~ Führen Sie eine Suche durch, indem Sie mehrere Tabellen verbinden
Super einfach in 2 Schritten! So installieren Sie devise! !! (Schienen 5 Version)
Optionen für neue Schienen und Einstellungen, die nach neuen Schienen vorgenommen werden müssen
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 2
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 0