Ho un modello di backbone che sto cercando di distruggere, ma nessun parametro viene inviato con la richiesta, quindi il server restituisce un errore "Elimina 404 non trovato".backbone destroy non invia parametri
Ammetto che la mia struttura è un po 'strana poiché sto creando/distruggendo gli elementi in base a se sono già in un elenco o meno.
var list_item = new MyApp.Models.ListItem({item_id: this.model.id, group_id: this.model.group_id}); if($(e.currentTarget).hasClass('add')){ list_item.save(list_item, { success: function(response){ this.model.attributes.addedtolist_id = response.id console.log(this.model); }, error: function(){ alert('could not save item'); } }); } else if($(e.currentTarget).hasClass('remove')) { list_item.id=this.model.addedtolist_id; list_item.attributes.id = this.model.addedtolist_id; console.log(list_item); list_item.destroy({ success: function(){ alert('delete'); }, error: function(){ alert('could not uncheck'); } }); }
l'output su console per list_item
prima di distruggere è
_escapedAttributes: Object _previousAttributes: Object _setting: false attributes: Object id: 2 item_id: 66 group_id: 64 __proto__: Object cid: "c23" id: 2 __proto__: q
ma quando guardo le intestazioni inviati con la richiesta di eliminazione, non ho alcun params vengono inviati.
----------------------- i parametri di aggiornamento inviati, 404 ancora restituiti --------------
come da raccomandazione di Yaroslav, ho aggiunto un 'header' al metodo destroy, ma il mio controller delle rotaie sta ancora restituendo un errore DELETE 404 not found
. Sto solo cercando di restituire il listino per assicurarmi di ottenere quello giusto prima di distruggerlo.
mio controller è
def destroy listitem = Listitem.find(params[:id]) return render :json => listitem end
@muistooshort Ho aggiornato la formattazione e ha aggiunto la parentesi mancante. speriamo sia meglio – pedalpete
Dove ottiene il suo 'id'? Non lo vedo nel 'nuovo ListItem'. E come appare l'URL per la richiesta DELETE? –
Non ha un ID nel 'nuovo ListItem' perché quello è il momento in cui viene creato il listitem, quindi non ha ancora un id. Ecco perché creo l'id prima di 'destroy'. L'URL è 'DELETE http://10.1.1.7:3000/list_items 404 (Non trovato)'. Uso lo stesso URL per l'indice e creo metodi, che funzionano senza problemi. – pedalpete