Ruby on rails 将数据导出到csv而不更改页面

Ruby on rails 将数据导出到csv而不更改页面,ruby-on-rails,ruby,csv,export,Ruby On Rails,Ruby,Csv,Export,从rails将数据导出到csv文件的正确方法是什么 我的视图中有一个“导出”链接 shows.html.erb <%= link_to "CSV", patient_record_path(format: "csv") %> 当我点击导出时,我得到了错误信息 Template is missing Missing template patient_record/show, application/show with {:locale=>[:en], :formats=&g

从rails将数据导出到csv文件的正确方法是什么

我的视图中有一个“导出”链接

shows.html.erb

 <%= link_to "CSV", patient_record_path(format: "csv") %>
当我点击导出时,我得到了错误信息

Template is missing

Missing template patient_record/show, application/show with {:locale=>[:en], :formats=>[:csv], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/RubymineProjects/my_app/app/views"
它也被重定向到url

http://www.host.com/patient_record/1.csv
我甚至不应该重定向页面,我只是想导出一个csv文件并保持在同一页面上


如果我使用ajax,该功能可以正常工作,但文件不会显示在broser中下载。您正在执行“显示”的GET请求,它会抛出错误,因为它正在患者记录控制器中查找show.html.erb文件。如果您使用jquery+ajax发出请求,则可以通过如下操作避免页面重定向:

$('#export_link).on ("click", function(e) {
  e.preventDefault();
  $.ajax({
    url: whatever_the_patient_record_path_is,
    etc........
  });
});

创建一个show.csv文件,该文件具有:csv)%>效果

我尝试过这个方法,但我的印象是,如果使用ajax,那么下载将不会显示在浏览器中这非常有效,但正如我刚才所说,下载不会作为下载在浏览器中“弹出”
$('#export_link).on ("click", function(e) {
  e.preventDefault();
  $.ajax({
    url: whatever_the_patient_record_path_is,
    etc........
  });
});