【发布时间】:2019-04-08 17:54:54
【问题描述】:
我的 rails 应用程序中有一个链接应该导出 CSV。但是当我单击链接时,它会将页面重新加载为 html。我尝试将response.headers['Content-Type'] = 'text/csv'
response.headers['Content-Disposition'] = 'attachment; filename=invoice.csv' 添加到控制器,但这无济于事。
控制器
def index
respond_to do |format|
format.html
format.csv do
response.headers['Content-Type'] = 'text/csv'
response.headers['Content-Disposition'] = 'attachment; filename=custome_incentives.csv'
send_data @incentives.to_csv
end
end
end
erb
<%= link_to 'Download to CSV', incentives_path(property.slug, format: :csv), class: 'btn csv' %>
更新
我尝试在 format.csv 块中放置一个 binding.pry,但它没有触发。
【问题讨论】:
-
你不需要那些标题,只需设置类型和文件名:
send_data @incentives.to_csv, type: 'text/csv', filename: 'myfile.csv'。 -
@CAmador 这仍然给了我同样的回应。
-
byebug/log that format.csv,该块真的在运行吗?
-
@CAmador 它没有被击中
-
为导出设置一个新动作,或者注释掉除了调用 send_data 之外的所有 respond_to 东西
标签: ruby-on-rails ruby export-to-csv