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.
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.
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"}
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.
Als der Fehler behoben war, murmelte er Marge alleine ...
Recommended Posts