Я бы подумал о том, чтобы перенести эту задачу в очередь заданий и немедленно вернуться, а не оставлять пользователя сидеть и ждать. В противном случае вы столкнетесь с миром проблем, когда многие люди попытаются использовать это, и у вас не хватит доступных экземпляров приложения rails для обработки любых новых соединений.
Одним из способов сделать это легко может быть использование сообщения Ajax для запуска создания документа, перетащите его в Задержка задания , а затем выполните 10-секундную периодическую проверку через ajax, информируя ожидающего пользователя о заданиях статус. Как только delayed_job завершит обработку вашей задачи в фоновом режиме и обновит что-либо в базе данных, чтобы указать, что она завершена, вы можете перенаправить пользователя через ajax во вновь созданный документ.