[RUBY] Vertiefte mein Verständnis der Zusammenführungsmethode

Einführung

Notieren Sie beim Implementieren der Funktion zum Speichern von Informationen aus dem Formular in mehreren Tabellen mithilfe des Formularobjekts den am häufigsten auftretenden Fehler, damit Sie ihn nicht vergessen.

Angenommene Szene

Der Benutzer kauft den Artikel. Gleichzeitig mit dem Speichern der in das Formular eingegebenen Daten in der Datenbank wird auch gespeichert, welches Produkt von welchem Benutzer gekauft wurde. Das heißt, wenn Sie im Formular auf "Kaufen" klicken, wird es in zwei Tabellen gespeichert.

Informationen zur Zusammenführungsmethode

Die Methode zum Festlegen starker Parameter.

Anwendungsbeispiel

controllers.rb


private
  def user_order_params
    params.require(:user_order).permit(:postal_code, :prefecture_id).merge(user_id: current_user.id, item_id: params[:item_id])
  end

Die current_user-Methode von "user_id: current_user.id" kann verwendet werden, da das Gerät Gem installiert ist. Sie können Werte mit "item_id: params [: item_id]" eingeben, da das Routing verschachtelt ist und die URL "item_id" enthält. Starke Parameter werden nachstehend unter der privaten Methode beschrieben.

Das Argument von "require" ist der Modellname. Das Argument von "allow" ist der Spaltenname von DB.

Parameter, die im Terminal bestätigt werden können

 "user_order"=>{"hoge"=>"", "postal_code"=>"", "prefecture_id"=>"1"}, "commit"=>"Kauf", "controller"=>"orders", "action"=>"create", "item_id"=>"7"}

Bei Verwendung der Zusammenführungsmethode

Wenn der vom Benutzer in form_with eingegebene Inhalt zusammen mit dem Schlüssel im Hash enthalten ist, Sie jedoch den vom Benutzer nicht eingegebenen Inhalt speichern möchten. Zum Beispiel werden die Benutzer-ID und die ID des Produkts nicht direkt vom Benutzer eingegeben, aber ich möchte sie in die Parameter aufnehmen und die Datenbank speichern. Verwenden Sie in diesem Fall die Zusammenführungsmethode, um den Schlüssel und den Wert zu beschreiben, die Sie in den Parameter aufnehmen möchten. Im obigen Beispiel wird user_id aus crrent_user.id und item_id aus Parametern entnommen, die in der URL und in den Parametern enthalten sind.

Schließlich

Als der Fehler behoben war, murmelte er Marge alleine ...

Recommended Posts

Vertiefte mein Verständnis der Zusammenführungsmethode
Informationen zur Rolle der Initialisierungsmethode
Zusammenführungsmethode
Meine Gedanken zur Equals-Methode (Java)
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
[Java] Behandlung von Java Beans in der Methodenkette
Die Reihenfolge der Java-Methodenmodifikatoren ist festgelegt
Log4j 2 Grundlegendes zu den Konzepten des Protokollsystems
Ausgabe der Verwendung der Slice-Methode
[Java] Beim Schreiben der Quelle ... Memorandum ①
Verwenden Sie die Standardmethode der Schnittstelle ordnungsgemäß?
Ausgabe über die Methode, Teil 2
Die Welt der Clara-Regeln (2)
Beurteilung des Kalenders
Die Welt der Clara-Regeln (4)
Die Welt der Clara-Regeln (1)
Die Welt der Clara-Regeln (3)
Über die Längenmethode
Definition der Rubinmethode
Die Welt der Clara-Regeln (5)
Die Idee der schnellen Sortierung
Über die Kartenmethode
Über die Ahnenmethode
Informationen zur to_s-Methode.
Die Idee von jQuery
Die Berechtigungsspezifikation der FileUtils-Methode ist eine Oktalzahl.
Gilt die Methode der primitiven spezialisierten IntFunction oder applyAsInt?
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
Aus der Gewohnheit, Wertobjekte für ein objektorientiertes Verständnis zu schaffen
Zusammenfassung der von der Spliterator-Merkmalsmethode #java zurückgegebenen Werte
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
Ein grundlegendes Verständnis des Flusses der rekursiven Verarbeitung anstreben