javascript - ruby on rails如何使用javascript下载csv文件

标签 javascript jquery ruby-on-rails ajax reactjs

首先进行一些说明。

我正在本地开发环境中尝试一切。

在我的 UsersController 中,我有一个 summary_csv 方法,它构建一个 csv 文件并将其存储在 /tmp/your-csv-file.csv 位置。

一旦系统检查文件已准备好下载,我就有了一个 summary_csv.js.erb 文件,它运行一些 javascript 来帮助用户下载文件,特别是在 summary_csv .js.erb,我尝试执行 window.location="/users/download_csv"; 并且 Users 中有一个 download_csv 方法 Controller 。

所以我希望下载发生,但不确定两件事:

  1. 我应该如何为这个 download_csv 方法配置 routes.rb 这样下载就不会抛出某种“丢失” 意见的错误? (此时我不关心用户是否必须 定向到另一个 View 或可以留在同一页面上)。

  2. download_csv 方法的主体应该包含哪些内容,以便 window.location="/users/download_csv"; 将启动下载, 对于位于 /tmp/your-csv-file.csv?

  3. 的文件

最佳答案

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/

相关文章:

jquery - 如何找到canJs中bootstrap的selectpicker插件选择了哪个选项?

ruby-on-rails - 如何在 Heroku Postgres 数据库上启用 contrib 模块

sql - 如何在 Rails 中查找尚未保存的记录?

ruby-on-rails - 如何在Rails的date_select中设置默认日期和include_blank

javascript - 删除 Internet Explorer 中的事件监听器

javascript - Joomla 更新后一个文件出现 ERR_CONTENT_DECODING_FAILED

javascript - 如何将最新调用的对象显示在最上面?

php - "different"ajax 调用引用的表单提交按钮

javascript - Angularjs - 在 Controller 之间共享数据

jquery 验证 onchange