Rails 文件下载和查看更新 - Howto?

2024-04-02

这看起来应该是直截了当的,但我很难过。我有一个视图控制器的链接,最终使用 send_data 将文件下载到用户的硬盘驱动器。这非常有效,并且它使当前视图显然没有受到影响。

但现在我希望页面在下载完成后提供一些反馈。在调用 send_data 方法之前,我天真地将类似以下代码的内容放入控制器中:

flash[:notice] = "Nice work, hot shot!"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"

但这不起作用,因为当前视图不会重新加载以使我有机会显示 flash 变量。

我还尝试为此操作添加 RJS 视图,但这导致了旧的 DoubleRender 错误,因为 send_data 也是渲染操作。

那么...呃...运行 send_data 后,到底如何将数据传递回当前视图?或者还有其他方法来解决这个问题吗?


也许您可以在响应中设置一个 cookie,并在单击下载文件的链接时使用 javascript 轮询该 cookie。

cookie 可以这样设置:

cookies["download_finished"] = "true"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"

然后定期使用您最喜欢的 javascript 框架获取该 cookie。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 文件下载和查看更新 - Howto? 的相关文章

随机推荐