IIC2513-2021-1 / projects

Repositorio oficial para los proyectos de ambas secciones del periodo 2021-1 del curso PUC IIC2513
14 stars 6 forks source link

Error con POST #57

Closed fbesoainp closed 3 years ago

fbesoainp commented 3 years ago

Tenemos un problema con el post. No esta entrando al delete, pero funciona cuando cambio la ruta a "/" en vez de "/delete". No podemos usar lo mencionado puesto que la ruta post "/" la usamos para el new y el new tampoco funciona a menos de que tenga la ruta "/". Probamos cambiar el post a delete (cambiando en el router y form de la vista), pero tampoco nos funciona el metodo delete de ninguna forma.

image image

dhvasquez commented 3 years ago

Si quieres hacer llamado a un método delete, o cualquier método que no sea POST o GET, debes sobreescribirlo, pues http no soporta otro además de GET o POST. ¿Cómo sobreescribirlo? pues lo hemos mostrado en cápsulas, clases y otras issues.

Debes incluir un input type hidden, tal que:

<form action=<%= miRuta %> method="post">
  <input type="hidden" name="_method" value="delete">
  ...
</form>

Saludos!

humbertoortuzar commented 3 years ago

Recuerda cuando uses tags (y cosas en general) buscar estos para ver cómo funcionan, por ejemplo aqui puedes ver especificaciones del form tag, donde aparece que los únicos métodos que acepta son POST y GET. Después podrías buscar algo tipo 'form tag put method' y llegar a algo como esto

También te recomiendo en vez de usar 'for' para iterar sobre los posts, podrías usar array.forEach( (elemento) => {} ) y así usas cada elemento en el orden que vienen. Tampoco entiendo porque el form en que intentas hacer delete es un dato de uno de los UsersPosts. Por último, puedes pasar el id del post como una variable de la ruta, declarándola como función en el router y así evitas el uso de un "input hidden" para pasar el id.