无论出于何种原因,我的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
操作中是否缺少某些本应触发下载提示的内容?根据{{3}},默认选项是将其作为附件发送(提示下载),而不是在浏览器中加载文件。
任何帮助将不胜感激。