我有一个下载动态生成文件的链接。我的运作方式如下:
routes.rb
中创建了自定义路由)send_data
,它将文档流式传输给用户。更新:建议包含代码。以下是该自定义控制器操作中的代码:
class MyController < ApplicationController
def custom_action_sending_pdf
pdf = InitMyPdf.new(@user)
send_data pdf.render, filename: "complete_report.pdf", type: "application/pdf"
end
end
问题是 next 请求request.referrer
现在将引用此自定义控制器操作,我不想要要做到这一点。这也反映在网址中。
request.referrer
时,这特别成为一个问题。当request.referrer
是此自定义控制器操作时:它不会重定向到实际页面,而只是重新下载文档。相反,我试试这个:
remote: true
选项将 ajax 请求链接到该自定义操作一方面:request.referrer
现在正好似乎没有引用该控制器动作。但是,现在文件没有下载!
我做了一些环顾四周:
send_data
将生成的文件发送给用户而不是{{1} }。 问题:最终我试图让用户下载动态生成的文件,同时不更改页面(保持send_file
相同)。这可能吗?
更新
我知道this question但问题是它接受的答案是使用request.referrer
,因为我的文件是动态生成的:send_file
在这里对我不起作用。