понедельник, 27 февраля 2012 г.

Backbonejs и контроллеры в Rails

Когда я первый раз столкнулся с backbone, одной из проблем было то, что не работали callback'и, которые я передавал в .save(), .fetch() и .destroy().
Оказалось, что backbone в ответ на эти действия ждет не просто заголовок head :ok, а полное значение переменных.

По умолчанию scafffold генерирует в контроллере успешный ответ на json следующим образом:
Таким образом, в ответ на успешный запрос посылается просто заголовок 200OK, но, так как backbone ждет полного отчета о состоянии сохраняемой или удаляемой модели, то callback'и не вызываются.
Чтобы решить проблему, в успешной ветке update и create действия достаточно написать:
Ответ на destroy действие также должен быть массивом, но так как отправлять полное значение уничтоженной переменной не логично, достаточно отправить пустой хэш:
UPD: В версии 0.9.10 все уже починено:
Bug fix where an empty response from the server on save would not call the success function.

Комментариев нет:

Отправить комментарий