2013-07-17 46 views
1

我在我的控制器索引操作add_product_data中有一種方法,它基本上更新產品數據,如果第一個或最後一個產品的titlenil。如果在調用add_product_data方法之前第一個或最後一個產品的titlenil,那麼我想要顯示一條閃爍消息,以便用戶知道爲什麼請求需要這麼長時間。Rails - 在運行方法之前顯示flash通知

我有什麼:

def index 
    if params["rating_set_id"] 
    @products = Product.find(:all, :joins => :rating_sets, :conditions => ["rating_set_id = ?", params["rating_set_id"]]) 
    if @products.first.title.nil? && @products.last.title.nil? 
     redirect_to :back, :flash => { :notice => "Updating missing product data..." } 
     FetchRec.add_product_data(@products) 
    end 

    @rating_set = RatingSet.find(params["rating_set_id"]) 
    @unique_dept = Product.find_by_sql("SELECT dept FROM products WHERE dept <> '' GROUP BY dept") 
    else 
    @products = Product.all 
    end 
end 

正如我有它設置,閃光燈消息顯示之後,產品數據,並將該請求。如何在請求發出時顯示Flash消息,以及是否需要調用add_product_data方法。

+0

如果你想將某些東西作爲一個單獨的過程來運行,那就這樣做吧 - 你誤解了標準的同步網絡工具是如何工作的。 –

回答

1

如果有一個長期運行的請求,則可以使用一個異步轉輪如Sidekiq並與閃光燈消息返回202(已接受)。 「標準」HTTP/HTML無法在請求完成前顯示消息。

相關問題