Ruby send_file 并使用 FileUtils 将其直接存储到本地文件夹

Ruby send_file and store it directly to local folder using FileUtils

我目前可以发送一个 docx 文件供用户下载,问题是 如何保存通过 send_file 方法创建的下载文件以存储到本地目录中在 ruby 应用程序中?

下面是使用send_file的代码:

send_file rand_file, :type => 'docx', :filename => "#{@report.report_name}.docx"

在调用 send_file 之前保存文件,然后按原样引用它

file = File.open(temp_file_path, 'w+')
file.binmode
file.write(rand_file.read)
file.close
file = Tempfile.new('temp_file_path', 'tmp')
send_file file, ...

我终于解决了我的问题,方法是在 send_file 命令之前使用 FileUtils 复制方法,使用@katafrakt 和@rantingsonrails 的提示。下面是我如何做到这一点的代码。

temp_file_path = "./document/#{@report.report_name}.docx"
FileUtils::copy_file(rand_file,temp_file_path)