[RUBY] Ich verstehe die Methode devise_parameter_sanitizer nicht, daher werde ich sie hier ausgeben.

Die Methode, die beim Kopieren von Sutras auf Rails herauskam, stellte sich als "was das" heraus, daher werde ich sie erneut überprüfen und als Ausgabe und Memorandum schreiben.

Was ist devise_parameter_sanitizer?

devise_parameter_sanitizer ist eine Methode, die vom Edelstein devise bereitgestellt wird. Es ist eine Methode, um Parameter (Name, E-Mail usw.) aus Anforderungen wie Anmeldung und neuer Registrierung abzurufen, wenn die Benutzerverwaltungsfunktion implementiert wird.

Über Parameter

Parameter sind extern übergebene Daten, die in der Anforderung enthalten sind. Es wird vom Controller verarbeitet und über das Modell als Daten in den Spalten der Tabelle registriert. Handelt es sich um Daten, die vom Eingabefeld des Browsers gesendet werden?

Um Daten in das Formular einzugeben und als Anfrage zu senden, schreiben Sie die folgende Beschreibung.

index.html


#Dies ist die Geschichte des Absenders
<%= form_with url:”URL”, method: :post, local: true do |form| %>
<%= form.text_field :content %>
<% end %>

Ich denke, Sie können damit ein Formular ausfüllen und Daten an eine URL senden. Der Teil ": content" der zweiten Zeile wird zu params und als "params [: content]" Es sind die Daten, die von außen an die Steuerung übergeben werden.

Dies war die Geschichte des Absenders, aber ich möchte auch an den Empfänger denken. Der Empfänger kann eingeschränkt werden, um nur Parameter mit dem angegebenen Schlüssel (Spaltenname) zu empfangen. Dies wird als starker Parameter bezeichnet. Die Beschreibung lautet wie folgt.

players_controller.rb


#Dies ist die Geschichte des Empfängers
params.require(:player).permit(:name, :age)

In der obigen Beschreibung werden nur die Daten des Schlüssels (Spalte) "Name" und des Schlüssels (Spalte) "Alter" des Player-Modells von der Anforderung empfangen. Geben Sie die Tabelle mit den erforderlichen Spalten an. Wenn die Anforderung zusätzlich zu den Schlüsseln "Name" und "Alter" Daten zu "Höhe", "Geschwindigkeit" und "Verteidigung" enthält, werden diese nicht empfangen.

Kehren Sie zur Methode devise_parameter_sanitizer zurück.

Die Beschreibung lautet wie folgt.

application_controller.rb


#Für die Entwicklung
devise_parameter_sanitizer.permit(:sign_up, keys: [:email])

Da devise_parameter_sanitizer eine Methode zum Entwickeln ist, ist das Modell das von devise erstellte Benutzermodell, sodass die oben genannten Anforderungen nicht beschrieben werden. Der Parameter (Daten), den Sie bei der Anmeldung erhalten, bedeutet "E-Mail".

Als ich den Code mit diesem devise_parameter_sanitizer schrieb, dachte ich, dass das devise gem für die Implementierung der Anmeldefunktion sehr praktisch ist. Sie können sich registrieren und anmelden, ohne eine Anmeldefunktion von Grund auf neu zu erstellen. Wenn Sie die erforderlichen Informationen (Spalten) in devise_parameter_sanitizer einfügen, erledigt devise den Rest bis zu einem gewissen Grad. Ich bin mir also noch nicht sicher, halte dies jedoch für eine sehr bequeme Methode.

Schließlich

Obwohl ich diesen Artikel geschrieben habe, gibt es noch einige Dinge, die ich nicht verstehe. Ich wäre Ihnen dankbar, wenn Sie mir sagen könnten, ob mit dieser Anerkennung etwas nicht stimmt. Vielen Dank.

Artikel, auf die verwiesen wird

Ein aktiver Ingenieur erklärt, wie die Anforderungs- / Genehmigungsmethode von Rails [für Anfänger] verwendet wird. https://techacademy.jp/magazine/22078

Recommended Posts

Ich verstehe die Methode devise_parameter_sanitizer nicht, daher werde ich sie hier ausgeben.
Ich kann mich nicht an die Eingabe / Ausgabe von Textdateien in Java erinnern, also habe ich sie zusammengefasst.
Ausgabe über die Methode Teil 1
Verstehen Sie die Hilfsmethode form_with
Bei der Java-Parallelverarbeitung bin ich mir nicht sicher
[Aktionsansicht :: Fehlende Vorlage] Ich habe die Bedeutung der Fehleranweisung nicht verstanden und sie nachgeschlagen.
Ich habe die Bedeutung von DI oder @Autowired oder Injektion nicht verstanden, also habe ich nachgeschlagen.
Ich habe versucht zu verstehen, wie die Rails-Methode "redirect_to" definiert ist
Ich habe versucht zu verstehen, wie die Rails-Methode "link_to" definiert ist
"RSpec funktioniert nicht!" Die Ursache war Frühling, also habe ich es untersucht.
Ich habe versucht, die Methode zu erklären