我有一个 Rails 应用程序,允许用户下载生成的 CSV 文件。下载文件后,我想将用户重定向到新的 URL 或操作。在 send_data 之后进行重定向是否有技巧?
我想做这样的事情(这是行不通的):
send_data(output,:type => content_type,:filename => "myfile.csv")
redirect_to :controller => 'my_controller', :action => 'download_done'
最佳答案
send_data
是一个渲染,因此您不能在 Controller 方法中执行任何操作。
解决它的方法都涉及 Javascript。这是我一起破解但从未真正喜欢过的一种方式:
- 用户点击提交
- 弹出小窗口并连接到 Controller 下载文件
- 主窗口重定向到下一页
最终我将文件生成变成了后台作业。然后用户转到工作页面(不需要后续重定向)以获取文件。
关于ruby-on-rails - Rails 如何 - 使用 send_data 导出数据然后 redirect_to 新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049931/