【发布时间】:2016-04-28 16:59:23
【问题描述】:
我正在尝试在 Rails 中创建一个 CSV 文件以供下载,但无法让它只发送没有数据标签的 CSV。在我的控制器中,我有:
csv_string = CSV.generate do |csv|
headers = ['Header 1', 'Header 2']
csv << headers
@matches.each do |match|
csv << match
end
end
send_data(csv_string, :filename => filename, :layout => false)
运行它的表单有:
=form_tag log_path, :id =>'log_search_form', :multipart => true, :remote=>true do
.search_fields
.panel.panel-default
.panel-heading
Search Log File:
=file_field_tag :search
=submit_tag "Find Matches", :class=>'btn btn-primary btn-xs'
当我按“查找匹配”时,系统提示我下载一个 csv 文件,但第一行有:
<textarea data-type="text/csv" data-status="200" data-statusText="OK">Header 1
文件以
结尾</textarea>
(旧版)代码使用 remotipart - 看来我需要阻止它覆盖渲染并添加 textarea。我怎样才能获得干净的 CSV 下载? 谢谢!
【问题讨论】:
-
您是否复制粘贴了您的
show.csv.erb文件?因为你在第一行有错字。你必须关闭你的数组。 -
看起来有东西试图显示状态标题信息,但它被错误地显示为文本区域 - 可能控制器或共享模板中的某处有代码试图显式发出状态标题?
-
csv.erb 确实有一个右括号 - 我复制错了。我会寻找一些状态标题代码 - 谢谢!
标签: ruby-on-rails csv download remotipart