2012-05-25 18 views
5

Tengo un concepto básico de red social: Solicitudes de amigos.Backbone.Js Envío de datos con destroy()

Cada solicitud de amistad puede ser aceptada o rechazada, cualquiera de las dos acciones debe dar como resultado que la solicitud de amistad sea eliminada de la colección y eliminada del servidor.

Puedo usar model.destroy() para emitir la solicitud DELETE al servidor y también eliminar el elemento de la colección FriendRequests. Pero necesito enviar algunos datos adicionales al servidor sobre si la Solicitud fue aceptada o rechazada. ?accepted=true|false

¿Cómo envío datos adicionales allong con Destroy() - o estoy haciendo esto de la manera incorrecta?

+0

Suena como dos operaciones diferentes: una actualización y luego una eliminación. – kinakuta

+0

Realmente no necesito actualizar la solicitud de amistad, solo necesito poder realizar una acción diferente dependiendo de si fue aceptada o rechazada – reach4thelasers

+0

Entendida, pero estas son solo operaciones básicas de limpieza: borrar no transmite información adicional - Parece que necesita actualizar un estado para poder realizar un poco de lógica cuando ocurre la eliminación. – kinakuta

Respuesta

2

Estoy de acuerdo con @kinakuta en que este no es un DELETE estándar. Considere hacer una PUT a /friend-request/42/accept o /friend-request/42/decline. Otra opción sería hacer una actualización estándar/PUT pero en el servidor tomar la acción apropiada cuando se proporciona el indicador accepted durante una actualización. También es posible que desee implementar "eliminación suave" para los registros de la base de datos del lado del servidor donde la solicitud de amistad no se borre pero su atributo de "estado" haya cambiado al valor del ciclo de vida apropiado. Podría ser uno de "pendiente", "rechazado", "aceptado", etc. Es posible que desee almacenar metadatos adicionales, como una marca de tiempo cuando se aceptó la solicitud, lo que podría ser interesante para los informes/análisis. Si elimina el registro, no hay lugar conveniente para almacenar esos metadatos.

+0

Buena respuesta, gracias, voy a seguir su consejo. – reach4thelasers

+1

Esto habría sido un buen comentario, pero NO una respuesta. No contestó la pregunta real, incluso si lo que hizo el PO no era correcto en términos de codificación. –

Cuestiones relacionadas