[RUBY] Ich versuchte noch einmal zusammenzufassen, was auf den ersten Blick schwierig war

Einführung

Fortsetzung des vorherigen "Ich habe versucht, ein auf den ersten Blick schwieriges Gerät zusammenzufassen". Diesmal über die Abmeldefunktion. Klicken Sie hier für den vorherigen Beitrag, in dem die Einführung von Gerät ↓ erläutert wird https://qiita.com/TerToEer_sho/items/b5523ad100d08126a547

Implementierung der Abmeldefunktion

Erstens wird die Schaltfläche zum Abmelden nur vom angemeldeten Benutzer benötigt. Mit anderen Worten Wenn Sie angemeldet sind, zeigen Sie die Schaltfläche zum Abmelden an. </ font> Wenn Sie angemeldet sind, benötigen Sie die Schaltfläche zum Abmelden nicht. Mit anderen Worten Wenn Sie nicht angemeldet sind, zeigen Sie die Anmeldeschaltfläche an. </ font>

Woher wissen Sie, ob Sie angemeldet sind? Dies ist eine weitere großartige Sache bei Devise, und es gibt Methoden, die Sie verwenden können, indem Sie Devise's Gem installieren.

user_signed_in? method </ font>

In Japanisch übersetzt wird zurückgegeben, ob Sie als boolescher Wert (true / false) angemeldet sind oder nicht.

Sie sind angemeldet → true Nicht angemeldet → false

Ich weiß nicht genau, warum ich feststellen kann, ob ich angemeldet bin.

Unter Verwendung der Tatsache, dass der boolesche Wert von der user_signed_in? -Methode zurückgegeben wird, wird eine bedingte Verzweigung unter Verwendung der if-Anweisung durchgeführt.

Mit anderen Worten

Ruby:index.html.erb


<% if user_signed_in? %>
 <%= link_to 'Ausloggen', destroy_user_session_path, method: :delete %>
<% else %>
 <%= link_to 'Einloggen', new_user_session_path %>
 <%= link_to 'Anmelden', new_user_registration_path %>
<% end %>

Wenn Sie den Code am Beispiel der Rails-Ansichtsdatei schreiben, sieht er folgendermaßen aus.

Der Punkt, um vorsichtig zu sein, ist

① Setzen Sie in der Abmeldung die HTTP-Methode im dritten Argument der link_to-Methode auf "delete". </ font> Als Bild fühlt es sich an, als würde man den angemeldeten Status löschen. Übrigens, wenn Sie es nicht auf "Löschen" setzen, tritt ein Fehler auf. Der Grund dafür ist, dass die link_to-Methode standardmäßig "get" ist, die HPPT-Methode. Wenn Sie link_to lesen, heißt es: "Ich springe zum Linkziel".

② Bezüglich des Pfades des zweiten Arguments Am Terminal

rails routes

Und bestätigen. Sofern nicht anders angegeben, ist das gleiche wie oben in Ordnung.

Punkt

  • [x] Verwenden Sie die Methode user_signed_in?, um den Anmeldestatus zu ermitteln.
  • [x] Es ist möglich, die Anzeige mit der if-Anweisung zu verzweigen.
  • [x] Bei der Beschreibung der Abmeldung mit der Methode link_to ist als drittes Argument "method :: delete" erforderlich.

Schließlich

Es kann mit weniger Aufwand implementiert werden, da die bequeme Methode user_signed_in verwendet werden kann.

Recommended Posts