Ich werde erklären, welche starken Parameter beim Definieren von Aktionen in der Steuerung auftreten.
Es gibt eine Beschreibung von create (tweet_params) im Ausführungsinhalt der create-Aktion, aber dieses Argument, tweet_params, wird in der privaten Methode definiert.
Privat ist eine Methode, die nicht von außerhalb der Klasse aufgerufen werden kann. Die Verwendung der privaten Methode bietet zwei Vorteile:
Da einige Methoden einen Fehler verursachen, wenn sie von außerhalb der Klasse aufgerufen werden, ist es möglich, den Fehler im Voraus zu verhindern, indem sie isoliert werden.
Durch eine klare Trennung der privaten und nicht privaten Teile wird die Lesbarkeit des Codes verbessert.
In dieser privaten Methode Eine Methode namens tweet_params ist definiert und der Verarbeitungsinhalt ist wie folgt.
Nehmen Sie das Tweet-Modell als Argument der Anforderung Es nimmt: Name: Bild: Text als Argument der Erlaubnis.
Dies bedeutet, dass von den aus dem Formular gesendeten Daten nur die Parameter mit dem unter allow :: name: image: text angegebenen Schlüssel empfangen werden.
Durch die Angabe starker Parameter kann verhindert werden, dass nicht spezifizierte Parameter gesendet werden, und es werden unbeabsichtigte Datenaktualisierungen verhindert.
Wenn Sie beispielsweise einen Parameter senden, um das Anmeldekennwort einer anderen Person zu aktualisieren, können Sie das Kennwort einer anderen Person ohne Erlaubnis ändern. Sie sollten starke Parameter verwenden, um dies zu verhindern.
Schauen Sie sich den Code noch einmal an
Da die create-Methode tweet_params als Argument angibt, werden neue Daten über die tweet_params-Methode erstellt und gespeichert. Daher hat der neue Tweet in diesem Fall immer nur den im Argument allow angegebenen starken Parameter.