Основная проблема заключается в том, что обычно у вас будет ограниченное количество процессов Rails на вашем сервере, и каждый раз, когда пользователь делает запрос, он занимает весь процесс Rails на время запроса.
Давайтескажем, у вас есть 8 процессов рельсов.Если восемь пользователей запрашивают PDF-файл одновременно, все процессы будут заняты в течение 30 секунд, и никто не сможет использовать ваш сайт в течение 30 секунд.
Если вы посмотрите на него немного глубже, выобнаружим, что на самом деле время простоя будет немного больше 30 секунд, потому что Rails должен тратить время на отправку файла пользователю, а у пользователя может быть медленное интернет-соединение.Возможно, вам удастся обойти это, если вы включите правильный тип буферизации на своем веб-сервере или используете что-то вроде X-Accel-Redirect nginx .
Другая проблема заключается в том, что любой веб-сервервы можете отказаться от запроса после того, как он решит, что Rails слишком долго ждал.Вероятно, через 30 секунд он не сдастся, но, возможно, вам следует проверить конфигурацию вашего веб-сервера, просто чтобы быть уверенным.
Вы также должны быть уверены, что предоставили правильные заголовки HTTP, чтобы сообщить браузеру, какого родафайл это.Я думаю Content-Type
это то, что вам нужно.