Rails我如何 – 使用send_data导出数据然后重定向到新页面?

我有一个rails应用程序,允许用户下载生成的CSV文件。 下载文件后,我想将用户重定向到新的URL或操作。 在send_data之后有一个重定向的技巧吗?

我想做这样的事情(这不起作用):

send_data(output,:type => content_type,:filename => "myfile.csv") redirect_to :controller => 'my_controller', :action => 'download_done' 

send_data是一个渲染,所以你不能在控制器方法后做任何事情。

围绕它的方式都涉及Javascript。 这是我一起攻击并且从未真正喜欢的一种方式:

  • 用户点击提交
  • 弹出小窗口并连接到控制器以下载文件
  • 主窗口重定向到下一页

最终我将文件生成转换为后台作业。 然后,用户转到作业页面(不需要后续重定向)来获取文件。