2014-09-02 48 views
0

IM上的應用程序工作在軌定的行動,需要以下條件:如何執行這兩種渲染和重定向在軌

  1. 點擊一個按鈕應該先下載一個PDF文件(渲染部分)和
  2. 然後重定向到一個顯示頁面(redirect_to的部分)

我已經在網上搜索,發現這是不可能的渲染,並在同一時間給定動作重定向,是沒有解決這個辦法問題 ?

+0

你可以使用兩個函數,1渲染和另一個重定向 – 2014-09-02 07:04:24

+0

這是一個壞方法,但你可以使用'if(something)render else redirect_to'這個東西更好用'respond_to do | format | format.html {redirect_to ...} format.json {render @users} end' – 2014-09-02 07:08:33

+3

這不僅僅是一個rails限制 - 對於一個http請求,只能有一個響應 – 2014-09-02 07:10:53

回答

0

send_data使用渲染,所以你不能在你的控制器之後做任何事情。

要做到這一點,你必須使用JavaScript:

  1. 創建按鈕點擊一個iframe中。 (這持有你的下載過程)。

  2. 在iframe關閉事件上重定向頁面。

您也可以使用後臺作業進行下載操作,但我還沒有使用它。

0

您可以將用戶發送到結果頁面並添加元標記,以在x秒後將用戶重定向到下載。

<meta http-equiv="refresh" content="5; url=http://path_to/your/download.zip"/> 

這是您在很多網站上看到的方法,例如sourceforge.net(你的下載將在x秒後開始...)