AJAX 呈现中的 Flash 消息

Flash message in AJAX rendering

我有一个 Products 和产品 Reviews 控制器。我试图在创建评论时在我的 AJAX 渲染中显示一条 Flash 消息 ("Your review is under review for approval")。不确定我该怎么做。

Review Controller

def create
  @product = Product.find(params[:product_id])
  @review = Review.new(review_params)
  @review.user = current_user
  @review.product = @product
  respond_to do |format|
    if @review.save
      format.html { redirect_to product_path(@product), flash[:notice]="Your review is under review for approval" }
      format.js {render :create_success}
    else
      format.html { render "products/show" }
      format.js {render :create_failure}
    end
  end
end

create_success.js.erb

$("#reviews").prepend("<%= j render '/reviews/review', review: @review %>");
<% @review = Review.new %>
$("#new_review").replaceWith("<%= j render 'review_form' %>")

index.html.erb

<div  class="reviews" id="<%= dom_id(review)%>">
</div>

<%= simple_form_for [@product, @review], remote: true do |f| %>
 <div class="form-group">
   <%= f.input :review_comment, placeholder: "Let us know what you think here..."%>
 </div> 
 <div>
   <%= f.submit "Submit", class: "btn review-form-btn" %>
 </div>
<% end %>

第一步:

向DOM添加一个元素如下:

<div id="flash_notice"></div>

第 2 步:

create.js.erb 中将 flash 消息呈现给 DOM :

$("#flash_notice").html("Your review is under review for approval");