[RUBY] Ich habe versucht, ein Gerät zusammenzufassen, das auf den ersten Blick schwierig war

Einführung

Die Begegnung mit dem Gerät war das Schlimmste. Sogar das Konzept von Gem ist in erster Linie nicht eindeutig, und ich erinnere mich, dass ich es installiert habe, als ich den Fluss des MVC-Modells ein wenig verstehen konnte. In der Entwicklung berühre ich den Controller im Grunde genommen nicht, daher konnte ich auf den ersten Blick nicht verstehen, warum die Aktion ohne Erlaubnis ausgeführt wurde. Also habe ich beschlossen, etwas wie "Das ist alles!" Zusammenzustellen.

Was ist ein Gerät?

devise ist ein Juwel, das sich auf Benutzerverwaltungsfunktionen spezialisiert hat. Einstellungen wie Anmelden und Abmelden sind einfach. Mit anderen Worten, Sie müssen das Routing und den Controller nicht manuell einstellen. Wenn Sie sich mit der Anwendung als Benutzer registrieren und den Dienst erhalten können, hat die Einführung den Vorteil, dass die Entwicklung beschleunigt wird.

Gesamtdurchfluss

  1. Zu Gemfile hinzufügen
  2. Installieren Sie das Gerät
  3. Erstellen Sie ein Modell
  4. Erstellen Sie eine Tabelle
  5. Linkeinstellung für neue Registrierung und Anmeldung
  6. Erstellen Sie eine Ansichtsdatei für die neue Registrierung

Dieses Mal werden wir uns nur mit Neuanmeldungen befassen.

1. Zu Gemfile hinzufügen

Gemfile


gem 'devise'

・ Die letzte Zeile der Datei ist OK

2. Installieren Sie das Gerät

Hier gibt es zwei Dinge zu tun.

① Stellen Sie sicher, dass das aktuelle Verzeichnis das Verzeichnis der Anwendung ist, die Sie installieren möchten. Am Terminal

bundle install

Stellen Sie sicher, dass Sie dies tun, nachdem Sie es der Gemfile hinzugefügt haben. Starten Sie den lokalen Server bei Bedarf neu. (Strg + c → Schienen s)

② Auch am Terminal

rails g devise:install

Dieser Befehl ist wichtig. Vergiss nicht! Mit diesem Befehl können Sie devise verwenden.

3. Erstellen Sie ein Modell

Da davon ausgegangen wird, dass die Benutzerverwaltungsfunktion dieses Mal implementiert wird, lautet der Modellname "Benutzer". Auch am Terminal

rails g devise:model user


Schwierige Punkte
Wenn Sie zum ersten Mal Rollen studieren, lauten die Befehle beim Erstellen eines Modells

rails g model user

Lernen. Wenn man die Unterschiede vergleicht, ist es das Vorhandensein oder Fehlen von Geräten. Die Ergebnisse unterscheiden sich stark in Abhängigkeit von der Anwesenheit oder Abwesenheit.

Wenn der Befehl unten kein Gerät enthält, wird lediglich ein Modell erstellt. Mit anderen Worten, das Gerät kann nicht verwendet werden. Durch Festlegen von devise: model wird auch mit diesem Befehl gleichzeitig das auf devise bezogene Routing generiert. Dies erspart Ihnen die Erstellung einer Route. Überraschenderweise ist dies sowohl ein schwieriger Punkt zu lernen als auch eine gute Sache bei der Entwicklung. (Das erstellte Modell befindet sich im Verzeichnis "app / models".)

4. Tabelle erstellen

Fügen Sie der Migrationsdatei nach Bedarf Spalten hinzu. Diesmal wird es weggelassen. Übrigens enthält devise standardmäßig die E-Mail- und Kennwortspalten. Dies ist auch ein kompetenter Entwicklungspunkt. Am Terminal.

rails db:migrate

Hier ist dvise nicht beigefügt. Die Idee ist, dass Migrationsdateien nicht auf Dateien beschränkt sind, die mit devise erstellt wurden, sondern es gibt andere.

5. Verknüpfen Sie die Einstellungen für die neue Registrierung und Anmeldung

Es wird davon ausgegangen, dass der Link zur Ansicht durch die Hilfsmethode link_to angegeben wird. Am Terminal

rails routes

Dann wird das Routing in einer Reihe angeordnet. (Die Ansicht der Schienenwege wird weggelassen.) Zu beachten ist: sign_up (neue Registrierung) sign_in (login) Ist eine andere Sache. Neue Registrierung = Registrierung Login = Sitzung Ist im Pfad enthalten.

Insbesondere wird der Link in der Ansichtsdatei wie folgt beschrieben.

<%= link_to 'Anmelden', new_user_registration_path %>
<%= link_to 'Einloggen', new_user_session_path %>

Achten Sie auf jeden Fall auf den Unterschied im Pfad.

6. Erstellen Sie eine Ansichtsdatei für die neue Registrierung

Zunächst aus dem Befehl zum Generieren einer Ansichtsdatei. Wieder am Terminal

rails g devise:views

Dies ist auch ein schwieriger Punkt. Es gibt drei wichtige Dinge.

Das erste ist Fügen Sie genau wie beim früheren Erstellen des Modells "devise" hinzu. Die durch Hinzufügen von Gerät generierte Ansichtsdatei befindet sich unter Gerät. Speziell, app/views/devise/registrations/new.html.erb app/views/devise/sessions/new.html.erb

Der zweite ist Es ist in ein Registrierungsverzeichnis für die neue Registrierung und ein Sitzungsverzeichnis für die Anmeldung unterteilt. Mit anderen Worten, die Datei, die den HTML-Code des neuen Registrierungsbildschirms bearbeitet, und die Datei, die den HTML-Code des Anmeldebildschirms bearbeitet, unterscheiden sich.

Der dritte ist Das letzte Wort des Befehls wird als Ansicht s </ font> pluralisiert. Wie im zweiten Abschnitt erwähnt, werden mehrere Ansichtsdateien generiert, sodass Sie sich diese als Pluralform merken können.   Der Code wird übrigens standardmäßig sowohl in die neu registrierte HTML-Datei als auch in die HTMl-Anmeldedatei geschrieben. Nach Bedarf bearbeiten. (Wenn Sie Spalten hinzugefügt haben oder wenn Sie das Design ausarbeiten)

Punkt

  • Beim Generieren eines Modells oder einer Ansichtsdatei wird im Terminal [x] devise hinzugefügt.
  • [x] Neuanmeldung und Login sind unterschiedlich.
  • [x] Es ist fast keine Routing- oder Controller-Beschreibung erforderlich, was die Entwicklung erleichtert.

Schließlich

Der Text ist lang und schwer zu lesen. Es besteht kein Zweifel, dass Sie einen bequemen Edelstein fühlen werden, wenn Sie sich daran gewöhnt haben!

Recommended Posts

Ich habe versucht, ein Gerät zusammenzufassen, das auf den ersten Blick schwierig war
Ich versuchte noch einmal zusammenzufassen, was auf den ersten Blick schwierig war
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe versucht, die Stream-API zusammenzufassen
Was ist Docker? Ich habe versucht zusammenzufassen
Ich habe versucht, über JVM / Garbage Collection zusammenzufassen
Ich habe versucht, verschiedene link_to zusammenzufassen, die dieses Mal verwendet wurden
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Entwicklungstools) zusammenzufassen.
Ich habe versucht, persönlich nützliche Apps und Entwicklungstools (Apps) zusammenzufassen.
Ich habe versucht, die Objektorientierung auf meine Weise zusammenzufassen.
Ich habe versucht, yum-cron zu verifizieren
[Circle CI] Eine Geschichte, der ich bei Start Building verfallen war
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
Sondervortrag über Multiskalensimulation: Ich habe versucht, den 5. zusammenzufassen
Sondervortrag über Multi-Scale-Simulation: Ich habe versucht, den 8. zusammenzufassen
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, einen Numeron zu erstellen, der mit Ruby nicht gut ist
Sondervortrag über Multi-Scale-Simulation: Ich habe versucht, den 7. zusammenzufassen
Ich war süchtig danach, sbt zu starten
Ich habe versucht, C # (Indexer) zu kauen.
Ich habe versucht, mit Java zu interagieren
C # (Polymorphismus: Polymorphismus)
Ich habe versucht, Active Hash zu erklären
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
[Nachdem ich Progate gelernt hatte] Ich habe versucht, form_with beim Vergleich mit form_tag zusammenzufassen
[Ruby] Ich habe versucht, die häufigen Methoden in Paiza zusammenzufassen
[Ruby] Ich habe versucht, die häufigen Methoden mit paiza ② zusammenzufassen