Если, к примеру, проект содержит ссылку на PDF-файл, то после клика на ссылку броузер автоматически открывает этот файл в режиме просмотра (при установленном соответствующем плагине, что в большинстве случаев является стандартом).
Для того, что бы пользователь имел возможность этот файл скачать, необходимо в заголовке потока (header) написать необходимую информацию для броузера, как то disposition = «attachment», type = «application/octet-stream»
В RubyOnRails для этого существует готовая функция send_file
В нужном контроллере для этого пишем:
def download
send_file 'мой-файл.pdf'
end
При установке на продуктивный сервер оказалось, что функция download отправляет пустой файл. Проблема оказалась в том, что актуальная версия RubyOnRails по умолчанию использует модуль X-Sendfile для Apache-Сервера. Этого модуля по определённым причинам на продуктивном сервере нет. Отключение в конфигурационном файле опции
config.action_dispatch.x_sendfile_header = "X-Sendfile"
эту проблему благополучно решило.

