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

Aar*_*egh 5 javascript ruby-on-rails

这似乎应该很简单,但是我很沮丧。我有一个指向视图控制器的链接,该链接最终使用send_data将文件下载到用户的硬盘驱动器。这样效果很好,并且当前视图显然未受影响。

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

flash[:notice] = "Nice work, hot shot!"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"
Run Code Online (Sandbox Code Playgroud)

但这是行不通的,因为当前视图不会重新加载,从而使我有机会显示Flash变量。

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

所以...呃...在运行send_data之后如何将数据传回当前视图?还是有解决此问题的另一种方法?

谢谢!亚伦

小智 4

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

cookie 可以这样设置:

cookies["download_finished"] = "true"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"
Run Code Online (Sandbox Code Playgroud)

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