....
echo json_encode($boolMark . "<br>\n");
// get the size of the output
$size = ob_get_length();
// send headers to tell the browser to close the connection
header("Content-Length: $size");
header('Connection: close');
ob_end_flush();
ob_flush();
flush();
/******** background process starts here ********/
ignore_user_abort(true);
/******** background process ********/
set_time_limit(0); //no time limit
/******** Rest of your code starts here ********/
Я думаю, что использование before_filter на действии редактирования является наименее навязчивым.
Ссылающийся домен должен быть достаточно надежным..., просто имеют значение по умолчанию в случае никакого ссылающегося домена, являющегося доступным (скажите: кто-то отметил страницу редактирования), и необходимо быть в порядке.
Flash: Данные, которые Вы будете использовать только для следующего запроса, могут храниться во флэш-памяти. Затем Вы не должны идти об автоматической очистке его. Это работает хорошо на ограниченные биты контекста приложения, в котором Вы, несомненно, только будете нуждаться однажды - не только для сообщений об ошибках!
Я знаю то, что Вы действительно продержались доступу HTTP: Если просто необходимо перенаправить людей к последнему URL, они были в, то просто делают это. request.referer, для большинства browers, которые не блокируют информацию, даст Вам последний URL, в котором был человек.
#in edit controller
...
flash[:page_to_redirect_to] = request.referer || "/my/default/path"
...
#in save controller
redirect_to flash[:page_to_redirect_to] || "/my/default/path"
Я не предложил бы жесткое кодирование они, случайно.
before_filter: Я вижу много разработчиков направляющих, использующих это в качестве их любимого молотка и превращающих все остальное в гвозди. Фильтры полезны, когда Вы хотите выставить функциональность всем или существенно всем методам в контроллере. Я не знаю, что это обязательно имеет место здесь, но Ваш пробег может варьироваться. Можно объединить фильтр с вышеупомянутыми двумя приемами, если гарантировано.