Я использую Backbone.js (версия 0.5.3), и у меня возникают проблемы с успешным обратным вызовом при сохранении модели . Он не запускается, хотя модель успешно сохранена на сервере.
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'
Скомпилированный 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');
}
});
Вывод в консоль:
in switch_private
private_entry attribute is currently false
XHR finished loading: "http://localhost:3000/entries/235".
Я возвращаю head: ok
из действия обновления в Ruby on Rails.
Добавление аргументов модели и ответа, так что это успех: (модель, ответ) ->
, не имеет значения. Что происходит не так?
РЕДАКТИРОВАТЬ:
Согласно предложению Тревора Бернхэма, я добавил обратный вызов ошибки, и он выполняется. Итак, что мне нужно вернуть из действия Ruby on Rails, чтобы Backbone счел сохранение успешным? На данный момент у меня есть head: ok
EDIT 2: Вот мой обновленный скомпилированный Javascript:
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');
}
});
Вот запрос PUT: