我有一個應用程序,它使用SuckerPunch gem和Carrierwave Backgrounder在rails應用程序的後臺上載和處理圖像。因此,當用戶創建資產模型的實例時,在圖像正在處理時,資產模型中的屬性attachment_processing?
設置爲true。我指出這給用戶使用該視圖模板Rails使用後臺進程應用回撥觸發事件
-if instance.send(base_name)
.form-row
- if instance.send(base_name).attachment_processing?
.image_processing
%span Processing Asset #{proccessing_asset_name(instance.send(base_name))}
= image_tag("ajax-loader.gif")
- else
= nice_asset(instance.send(base_name),options[:thumb])
當資產已處理完被設置爲false和圖像顯示後,頁面刷新的屬性。查看服務器日誌,它會在處理完成後自動啓動。
Started GET "/assets/ajax-loader.gif" for 127.0.0.1 at 2014-11-21 16:10:38 +0000
(0.2ms) BEGIN
SQL (0.4ms) UPDATE `assets` SET `attachment_processing` = 0, `updated_at` = '2014-11-21 16:11:14' WHERE `assets`.`id` = 6362
(1.9ms) COMMIT
有沒有一種方法,通過ajax或其他方法,使用它來自動顯示完成的圖像? 我只是尋找更友好的方法,而不是要求用戶刷新頁面或類似的東西?
非常感謝
耶,我建議你去websocket! socket.io可以在redis pubsub的幫助下解決這個問題。 – Rubyrider 2014-11-21 16:33:38