En y regardant, la 51e ligne est suspecte. La 50e ligne obtient un enregistrement spécifique de la table des tâches et l'assigne à @task. Et à la ligne 51, il y a une instruction if indiquant si elle est mise à jour. Faites attention à @task ici. Puisque la mise à jour est une action qui remplace les données mises à jour, elle est également enregistrée dans une table via le modèle, vous avez donc besoin de quelque chose. Il s'agit d'un paramètre puissant pour empêcher l'enregistrement / la mise à jour involontaire des données. Où sont les paramètres forts?
private
def task_params
params.require(:task).permit(:content, :point_id).merge(user_id: current_user.id)
end
Il est déjà préparé sous privé et est également requis lors de la création. Il fallait passer le task_params défini ici comme argument. Par conséquent, si le nombre d'arguments n'était pas correct, il était grondé et provoquait une erreur.
def update
@task = Task.find(params[:id])
if @task.update(task_params)← Ajouté ici
redirect_to root_path
end
Cela a pu éliminer l'erreur.
Recommended Posts