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。 这是我一起攻击并且从未真正喜欢的一种方式:
- 用户点击提交
- 弹出小窗口并连接到控制器以下载文件
- 主窗口重定向到下一页
最终我将文件生成转换为后台作业。 然后,用户转到作业页面(不需要后续重定向)来获取文件。