0

我使用「carrierwave」gem上傳圖片文件,也使用「carrierwave backgrounder」來處理上傳+在後臺使用RMagick處理圖片(我爲此使用了Delayed Job)。Rails背景圖片上傳

一切都像一個魅力。除了一件事情 - 我想上傳圖片並在上傳表單中顯示它們(所以,所有事情都發生在同一頁面上)。所以,基本上,會發生什麼 - 因爲上傳和圖像處理相對較慢,在發佈後渲染頁面時 - 圖像本身還沒有準備好:所以image_tag顯示了「資產」鏈接的損壞(href =「資產」)。等待2-3秒(刷新幾次)後,圖像出現在屏幕上。

所以,我的問題是 - 我能以某種方式顯示「LOADING」動畫(或文字,或另一張照片 - 無所謂),而不是壞了(尚未公佈)圖像的,一旦準備就緒 - 將圖像顯示給用戶。這可以在沒有AJAX的情況下完成嗎?或者我應該考慮使用AJAX重新執行它?

對不起,長話短說。希望你的幫助!

在此先感謝! :)

+0

有一個railscast描述了這個確切的場景,它是一個專業版,但在我看來它的價值爲9美元。 http://railscasts.com – iouri

+0

Eh。它是什麼情節? – Dmitri

+2

http://railscasts.com/episodes/383-uploading-to-amazon-s3 – iouri

回答

2

我的解決方案非常簡單:我觀察數據庫中是否有任何包含「tmp」字段的圖像(s.t tmp!= null)。如果是這樣 - 他們正在後臺處理,所以我使用setInterval函數,不斷詢問tmp是否爲null:一旦它爲空 - 處理完成。如果沒有 - 加載動畫正在運行,而不是上傳的圖像。非常簡單。