Почему мой обратный вызов об ошибке Backbone.js вызывается, хотя Rails якобы возвращает успешный ответ?

Я использую 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:

enter image description here

7
задан ben 6 October 2011 в 04:04
поделиться