Не используйте flash.now
.Вы упоминаете, что вы redirect_to
в этом действии, и flash.now
появляется только тогда, когда вы render
(разница в том, что redirect_to
приводит к целому «другому HTTP-запросу» и, таким образом, другому действию; flash.now
- отображается только в текущем действии ).
Поэтому, если вы хотите, чтобы это сообщение отображалось после завершения обработки, просто используйте флэш-память как обычно.
Если вы хотитесделать это в два этапа, хотя (сообщение с подтверждением при получении HTTP-запроса, а затем перенаправление, когда он завершает обработку), это сложнее.Вы не можете создать два HTTP-ответа для одного HTTP-запроса, поэтому вам придется подделать его с помощью JavaScript.
Я предполагаю, что поскольку ваше действие занимает достаточно много времени, чтобы обработать его, необходимоСообщение «Все еще работает ...», это результат отправки формы.Поэтому создайте обработчик событий отправки формы, который отображает ваше сообщение (и / или заменяет кнопку отправки на «рабочий» значок - это не позволяет нетерпеливым пользователям подключить ваш сервер (и, возможно, сломать их данные), принудительно отправляя их снова и снова).Это позволяет вашим пользователям знать, что вы действительно получили их запрос и работаете над ним *.Затем, когда ваше действие завершится, просто перенаправьте или выполните рендеринг, как обычно.
Надеюсь, это поможет!
* Поскольку это просто функция JavaScript, она не знает что сервер действительно получил ответ, но это один из тех случаев, когда UX превосходит техническую педантичность.