Estoy usando Backbone.js (versión 0.5.3) y estoy teniendo problemas con una devolución de llamada exitosa cuando saving a model. No se está ejecutando, aunque el modelo se haya guardado correctamente en el servidor.¿Por qué se llama a mi backbone de Backbone.js aunque supuestamente Rails está respondiendo con éxito?
CoffeeScript:
console.log 'in switch_private'
console.log "private_entry attribute is currently #{@model.get('private_entry')}"
@model.save {'private_entry': true},
success: ->
console.log 'in success'
Compilado Javascript:
console.log('in switch_private');
console.log("private_entry attribute is currently " + (this.model.get('private_entry')));
return this.model.save({
'private_entry': true
}, {
success: function() {
return console.log('in success');
}
});
salida de la consola:
in switch_private
private_entry attribute is currently false
XHR finished loading: "http://localhost:3000/entries/235".
estoy regresando head :ok
de la acción de actualización en Ruby on Rails.
Agregar el modelo y los argumentos de respuesta, para que sea success: (model, response) ->
, no hace la diferencia. ¿Qué está pasando mal?
EDIT: Según la sugerencia de Trevor Burnham, agregué una devolución de llamada de error, y se está ejecutando. Entonces, ¿qué debería estar volviendo de la acción de Ruby on Rails para que Backbone considere el guardar como un éxito? Por el momento tengo head :ok
EDIT 2: Aquí está mi Javascript actualizado compilado:
var this_view;
this_view = this;
return this.model.save({
'private_entry': !(this.model.get('private_entry'))
}, {
success: function(model, response) {
return console.log('in success');
},
error: function(model, response) {
return console.log('in error');
}
});
Aquí está la solicitud PUT:
¿Qué sucede si agrega una devolución de llamada de 'error' también? ¿Se llama? –
Gracias por la sugerencia, he editado la pregunta. – ben
Edité el título de la pregunta. Es posible que desee volver a escribirlo mejor que eso:/ – hugomg