По какой-то причине мой 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, вариант по умолчанию - отправлять его в виде вложения (приглашение к загрузке), а не загружать файл в браузере.
Любая помощь будет принята с благодарностью.