我的控制器索引操作add_product_data
中有一个方法,如果第一个或最后一个产品的title
为nil
,它基本上会更新产品数据。在调用title
方法之前,如果第一个或最后一个产品的nil
为add_product_data
,我希望显示一条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消息。如何在发出请求时显示flash消息,以及是否需要调用add_product_data
方法。
答案 0 :(得分:1)
如果您有长时间运行的请求,则可以使用Sidekiq等异步运行器,并使用flash消息返回202(已接受)。 “标准”HTTP / HTML无法在请求完成之前显示消息。