Как вы откатываете изменения модели при столкновении с ошибками на стороне сервера (например, ошибки проверки)?
Учитывая, что определенная проверка должна выполняться на стороне сервера, каков подходящий способ сделать это с помощью backbone.js(бэкэнд Rails)?
При сохранении магистральной модели происходит проверка на стороне клиента, которая дает соответствующий пользовательский опыт, если проверка не выполняется (представления этой модели не обновляются). Однако, если проверка на стороне сервера не удалась, модель и все ее представления уже были обновлены (с недопустимыми данными) до PUT на сервере.
Кажется, с этим связано несколько проблем.
- Все представления обновляются до того, как модель была проверена на стороне сервера. Если, например, у вас есть список моделей с всплывающим правлением диалога, модель в списке обновляется потенциально недействительной информации после вызова модели Model.save, но до того, как она был проверен на стороне сервера и PUT'ed.
- Если сервер возвращает ошибку (например, ошибка 422), не происходит "откат" модели. Неразрешимые данные просто сидят там, как дерьмо. Это действительно плохой.
Я использую backbone.js неправильно? Есть ли известный способ справиться с этим (очень распространенным) сценарием? Я понимаю, что могу выполнить ручное кэширование старых значений и т.д., Но это своего рода вонючее решение.
Спасибо!