所以我试图在购买PayPal后触发下载。所以我做的第一种方法是将任何错误重定向到错误页面。除了在发送罚款后永远不会呈现结果页面之外,这一切都有效。如果我尝试显式渲染页面,我会收到DoubleRender错误。
所以我对失去的正确事情感到失望:
我有一个名为getapk.erb的页面,并在其控制器中包含getfile代码。如果我遇到错误我redirect_to pperror.erb
所以我没有重定向到错误页面,而是在页面上的if?
答案 0 :(得分:3)
当你'send_file'是自己的渲染时。因此,显示“成功”页面并发送文件是两个单独的渲染。
我会让成功页面和文件下载两个单独的控制器操作,并在成功页面上显示文件下载的链接。
e.g。
def success
#show html page with file download link
end
def file_download
send_file #make sure you have :inline => false
end
然后你可以使用javascript让它看起来同时呈现两者。
在你成功的最底层。在这样的事情上,这样就可以在成功页面的渲染时自动调出下载对话框。
<script language="JavaScript">
window.location=<%=url_for :action=>"file_download", :id => 'etc' %>;
</script>