Я использую Prototype в моем проекте Rails для редактирования на месте (через Ajax.InPlaceEditor) формы. Однако я не хочу, чтобы он немедленно отправлял сообщения и делал обновление - сама форма довольно сложная, и пользователь может отказаться от своих изменений. Только теперь они не могут, потому что форма незаметно (для них) обновила базу данных.
Итак, я думал о том, чтобы использовать Prototype InPlaceEditor без указания URL-адреса обратной передачи (или сделать его универсальным URL-адресом обратной передачи, возвращающим значение true), а затем в качестве части «onLeaveEditMode» для поля обновить его скрытым поле формы с новым значением.
Таким образом, когда пользователь получает необычный внешний вид редактора на месте, но все еще может нажать «Отмена» внизу и отменить все изменения.
Итак, я приступил к выполнению этой миссии в небольшом тестовом прототипе, и, похоже, он работает - за исключением того, что он означает значительный объем кода javascript и, в некотором смысле, кажется, что он убивает цель InPlaceEditor. Это должно быть решенной проблемой, но мой гугл-фу не возвращает ничего, как я хочу.
Что-то вроде этого (но, очевидно, не в виде сетки), где вы можете редактировать поля на месте, но должны нажать «сохранить», чтобы зафиксировать ваши изменения:
http://www.nitobi.com/products/grid/editors/
Пара вопросов:
1) Есть ли существующий плагин rails или класс Prototype, чтобы сделать это для меня?
2) Если нет, мой подход звучит разумно?
Спасибо !!