рубин на рельсах автосохранения форм - PullRequest
2 голосов
/ 28 апреля 2011

У меня есть довольно обширная форма на одном из моих сайтов рельсов, и мне было интересно, возможно ли динамическое сохранение формы для каждого входа onchange. То, что я пытаюсь предотвратить, - это то, что пользователи тратят время на заполнение формы, а затем теряют все свои изменения из-за проблем с подключением или из-за чего-то глупого ...

Есть предложения? По сути, я не хочу, чтобы форму нужно было отправлять вообще. Я просто хочу, чтобы форма сохранялась так же, как и в Mac OS X (кнопка «Применить» или «Сохранить» не сохраняется).

с использованием рельсов 3 ... спасибо!

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Нагрузка на ваш сервер и БД будет на несколько порядков выше, чем при более традиционном подходе. Я также согласен с Кайлом, что я был бы очень смущен отсутствием кнопки отправки. По крайней мере, вам нужно будет уведомлять пользователей каждый раз, когда данные отправляются на сервер и успешно сохраняются, иначе они не поймут, почему вы не просите их сохранить.

Кроме того, подумайте обо всех накладных расходах. При каждом нажатии клавиши пользователь должен будет инициировать соединение, отправлять свои HTTP-заголовки, файлы cookie, содержимое формы и т. Д.

Рассматривали ли вы функцию автосохранения вместо этого? Может быть, сохраняйте форму каждые 2 минуты, если были внесены изменения, а затем добавьте в форму кнопку «Отправить»? Я думаю, что это избавит вас от большой боли, но принесет вам почти такую ​​же выгоду.

0 голосов
/ 28 апреля 2011

Если вы используете AJAX для вызова update, вот несколько вещей, которые могут помочь: функция serialize () jQuery может помочь собрать данные формы в запрос после публикации, не вызывая действие отправки формы. Использование save(:validate => false) обойдет проверку, если вы сохраняете черновики и хотите пропустить проверку до окончательного сохранения.

0 голосов
/ 28 апреля 2011

Вы можете прикрепить ajax-событие к каждому входу, теряющему фокус, которое вызовет метод обновления Controllers.

Большинство пользователей будут удивлены таким поведением, потому что это не ожидаемое поведение веб-сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...