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.
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.
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.
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.
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.
Ein aktiver Ingenieur erklärt, wie die Anforderungs- / Genehmigungsmethode von Rails [für Anfänger] verwendet wird. https://techacademy.jp/magazine/22078
Recommended Posts