3
這看起來應該是直截了當的,但我很難過。我有一個鏈接到視圖控制器,最終使用send_data將文件下載到用戶的硬盤驅動器。這工作得很好,並且當前視圖顯然沒有改變。Rails文件下載和查看更新 - Howto?
但是現在我希望網頁在下載完成後提供一些反饋。我天真地把類似下面的代碼在控制器中SEND_DATA方法調用之前:
flash[:notice] = "Nice work, hot shot!"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"
但是,這並不工作,因爲當前視圖不重裝給我一個機會,以顯示Flash變數。
我也嘗試爲此操作添加RJS視圖,但導致舊的DoubleRender錯誤,因爲send_data也是渲染操作。
因此......呃......在運行send_data後,如何將數據傳回當前視圖?還是有另一種解決這個問題的方法嗎?
謝謝! 亞倫。
有趣的想法!玩過這個之後,我很難讓它工作。 cookie可以在控制器操作中設置,但在頁面重新加載之前不會被檢查。所以我可以下載這個文件,沒有任何反應。但是當我手動刷新頁面時,繁榮!間隔檢查會啓動並檢測cookie。嗯... – 2010-10-15 21:13:03
是的,我得到它的工作!只是一個簡要介紹:在控制器動作,我設置cookie,但你必須有像這樣的域和路徑:餅乾[:download_complete] = { \t \t:值=>「真」, \t \t:域=> 「本地主機」, \t \t:路徑=> 「/」 \t} – 2010-10-15 21:26:27
[抱歉,提交過早] - 然後在視圖中,我在頂部的代碼: 它調用一個使用jQuery cookie插件檢查該cookie的javascript函數;如果找到,它會重新加載頁面並使用與設置cookie相同的信息擦除cookie:$ .cookie('download_complete',null,{domain:「localhost」,path:「/」});這可以防止頁面不斷重新加載。很好的回答,非常感謝! – 2010-10-15 21:28:35