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

时间:2010-10-15 19:26:18

标签: javascript ruby-on-rails

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

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

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

但这不起作用,因为当前视图没有重新加载,让我有机会显示flash var。

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

所以...呃......运行send_data后,如何将数据传回当前视图?或者还有另一种解决这个问题的方法吗?

谢谢! 亚伦。

1 个答案:

答案 0 :(得分:3)

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

可以像这样设置cookie:

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

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