首先进行一些说明。
我正在本地开发环境中尝试一切。
在我的 UsersController
中,我有一个 summary_csv
方法,它构建一个 csv 文件并将其存储在 /tmp/your-csv-file.csv
位置。
一旦系统检查文件已准备好下载,我就有了一个 summary_csv.js.erb
文件,它运行一些 javascript 来帮助用户下载文件,特别是在 summary_csv .js.erb
,我尝试执行 window.location="/users/download_csv";
并且 Users 中有一个
Controller 。download_csv
方法
所以我希望下载发生,但不确定两件事:
我应该如何为这个
download_csv
方法配置routes.rb
这样下载就不会抛出某种“丢失” 意见的错误? (此时我不关心用户是否必须 定向到另一个 View 或可以留在同一页面上)。download_csv
方法的主体应该包含哪些内容,以便window.location="/users/download_csv";
将启动下载, 对于位于/tmp/your-csv-file.csv
? 的文件
最佳答案
1) 像这样在用户资源和集合中放置一个 get 方法
resources :users do
collection do
get 'download_csv'
end
end
2) 您只需要发送文件,将您的文件路径传递给它,因为它已准备就绪。
结果
def download_csv
send_file(
"/tmp/your-csv-file.csv",
filename: "your_custom_file_name.csv",
type: "text/csv"
)
end
关于javascript - ruby on rails如何使用javascript下载csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599564/