链接为HTML的CSV呈现

时间:2019-04-08 17:54:54

标签: ruby-on-rails ruby export-to-csv

我的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' %>

更新

我尝试将binding.pry放在format.csv块中,但不会触发。

1 个答案:

答案 0 :(得分:1)

假设路线都井井有条,那么您tried this way是否包括这样的filename

def index

  respond_to do |format|
    format.html
    format.csv do
      send_data @incentives.to_csv, filename: 'custome_incentives.csv'
    end
  end
end

如果无法解决,也可以force a download link