Ruby send_file не работает, если ссылка не загружена на новую вкладку - PullRequest
0 голосов
/ 06 октября 2019

По какой-то причине мой send_file фактически не предлагает пользователю загрузить файл. Однако, если я щелкну правой кнопкой мыши по ссылке, которая запускает действие send_file, пользователю будет предложено загрузить файл. Он просто не запрашивает его на той же странице, что и ссылка.

Не уверен, почему это происходит, но вот мое действие в контроллере:

  # GET /consultants/agents/1/download_ssh_key
  def download_ssh_key
    @agent = Agent.find(params[:agent_id])
    send_file "/home/shared/agent_#{@agent.uuid}"
  end

Когда я нажимаю эту ссылкув браузере (без открытия новой вкладки) это то, что я вижу в консоли:

I, [2019-10-05T22:40:47.713625 #3211]  INFO -- : [1f170528-920b-4330-9d17-7107220235dd] Started GET "/consultants/agents/9/download_ssh_key" for 66.195.29.70 at 2019-10-05 22:40:47 -0500
I, [2019-10-05T22:40:47.714597 #3211]  INFO -- : [1f170528-920b-4330-9d17-7107220235dd] Processing by Consultants::AgentsController#download_ssh_key as HTML
I, [2019-10-05T22:40:47.714673 #3211]  INFO -- : [1f170528-920b-4330-9d17-7107220235dd]   Parameters: {"agent_id"=>"9"}
D, [2019-10-05T22:40:47.717697 #3211] DEBUG -- : [1f170528-920b-4330-9d17-7107220235dd]   Agent Load (0.5ms)  SELECT  `agents`.* FROM `agents` WHERE `agents`.`id` = 9 LIMIT 1
I, [2019-10-05T22:40:47.719397 #3211]  INFO -- : [1f170528-920b-4330-9d17-7107220235dd] Sent file /home/shared/agent_22ac92d1 (0.3ms)
I, [2019-10-05T22:40:47.720488 #3211]  INFO -- : [1f170528-920b-4330-9d17-7107220235dd] Completed 200 OK in 6ms (ActiveRecord: 0.5ms)

Я что-то упустил в своем действии send_file, которое должно вызывать приглашение на загрузку? Согласно https://apidock.com/rails/ActionController/Streaming/send_file, вариант по умолчанию - отправлять его в виде вложения (приглашение к загрузке), а не загружать файл в браузере.

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...