rails 无法下载生成的 CSV 文件

rails generated CSV file can't be downloaded

我正在尝试将我的数据库导出到 CSV 文件并下载它,但它没有下载。我有一个包含 2 个不同操作的表单,导出到 CSV 和导出到 JSON 我想在单击它们的任何提交按钮时下载生成的文件,但它不起作用。 当输入城市名称并单击导出为 CSV 提交按钮时,它不会下载

观点export.html.erb

<h1>Export Data</h1>
<div class="container">
  <div class="row">
    <div class="col-xs-12">
      <%= form_with(url: export_path, method: 'get', local: true) do |f| %>
        <div class="form-group">
          <%= f.label :City, style: "font-weight: bolder; font-size: large;" %>
          <%= f.text_field :city, class: 'form-control' %>
        </div>
        <div class="form-group">
          <%= f.label :Date, style: "font-weight: bolder; font-size: large;" %>
          <%= f.datetime_local_field :date, class: 'form-control' %>
        </div>
        <div class="form-group">
          <%= f.submit "Export to CSV", class: "btn btn-primary" %> |
          <%= f.submit "Export to JSON", class: "btn btn-primary" %>
        </div>
      <% end %>
    </div>
  </div>
</div>

替换此行

<%= form_with(url: export_path, method: 'get', local: true) do |f| %>

与...

<%= form_with(url: export_path, method: 'get', local: true, format: :csv) do |f| %>

如果你把它放在浏览器中 http://localhost:3000/export_path.pdf

会下载任何东西

尝试改变这个

<%= form_with(url: export_path, method: 'get', local: true) do |f| %>

有了这个

<%= form_with(url: export_path(format: "csv") , method: 'get', local: true) do |f| %>

好的,伙计们,我终于解决了这个问题。其实,造成这种情况的原因不止一个。

首先我替换了这一行:

<%= form_with(url: export_path, method: 'get', local: true) do |f| %>

这一行:

<%= form_with(url: export_path(format: "csv") , method: 'get', local: true) do |f| %>

感谢我的朋友Jamie Crone