Rails:send_file永远不会呈现页面或DoubleRender错误

时间:2011-11-03 19:13:51

标签: ruby-on-rails file

所以我试图在购买PayPal后触发下载。所以我做的第一种方法是将任何错误重定向到错误页面。除了在发送罚款后永远不会呈现结果页面之外,这一切都有效。如果我尝试显式渲染页面,我会收到DoubleRender错误。

所以我对失去的正确事情感到失望:

我有一个名为getapk.erb的页面,并在其控制器中包含getfile代码。如果我遇到错误我redirect_to pperror.erb

所以我没有重定向到错误页面,而是在页面上的if?

1 个答案:

答案 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>