Wenn man es betrachtet, ist die 51. Zeile verdächtig. Die 50. Zeile ruft einen bestimmten Datensatz aus der Aufgabentabelle ab und weist ihn @task zu. In Zeile 51 steht eine if-Anweisung, die angibt, ob sie aktualisiert wurde. Achten Sie hier auf @task. Da Update eine Aktion ist, die die aktualisierten Daten ersetzt, wird es auch über das Modell in einer Tabelle gespeichert, sodass Sie etwas benötigen. Dies ist ein wichtiger Parameter, um eine unbeabsichtigte Registrierung / Aktualisierung von Daten zu verhindern. Wo sind die starken Parameter?
private
def task_params
params.require(:task).permit(:content, :point_id).merge(user_id: current_user.id)
end
Es ist bereits privat vorbereitet und wird auch beim Erstellen benötigt. Die hier definierten task_params mussten als Argument übergeben werden. Wenn die Anzahl der Argumente nicht korrekt war, wurde sie daher gescholten und verursachte einen Fehler.
def update
@task = Task.find(params[:id])
if @task.update(task_params)← Hier hinzugefügt
redirect_to root_path
end
Dadurch konnte der Fehler behoben werden.
Recommended Posts