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");
我有一个 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");