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。
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |