-Es gibt Admin-Modell und Kundenmodell als Entwicklungsmodelle (bitte ersetzen Sie den Modellnamen)
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)
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