Rails - 在运行方法之前显示闪存通知

时间:2013-07-17 16:36:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我的控制器索引操作add_product_data中有一个方法,如果第一个或最后一个产品的titlenil,它基本上会更新产品数据。在调用title方法之前,如果第一个或最后一个产品的niladd_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方法。

1 个答案:

答案 0 :(得分:1)

如果您有长时间运行的请求,则可以使用Sidekiq等异步运行器,并使用flash消息返回202(已接受)。 “标准”HTTP / HTML无法在请求完成之前显示消息。