我想在普通的HTTP用户和我能够设想的UJS人员之间更清楚地分享FlashHash通知。请允许我向您展示我的第一个:
首先,相关控制器respond_to
的{{1}}部分的一部分:
#update
和respond_to do |format|
if @cont.save
flash[:notice] = 'Continent was successfully updated.'
format.html { redirect_to edit_continent_url(@cont) }
format.json { head :ok }
format.js
匹配:
update.js.erb
同样在我的$('#jsflash').html('<%= escape_javascript(render :partial => "application/notices/notice") %>').show();
<% flash.clear %> # clear the flash to avoid displaying on page reloads
中有
application.html.erb
和<div id="jsflash"></div>
<%= render "application/notice/alert" %>
:
app/views/application/notices/_notice.html.erb
<% unless flash[:notice].blank? %>
<div class="alert-message info fade in" data-alert="alert">
<a class="close" href="#">×</a>
<%= content_tag :p, flash[:notice] %>
</div>
<% end %>
,除非我绝对不得不这样做。<div id="jsflash"></div>
存在,以便在页面重新加载时清除闪存。但是,由于每个JS视图都需要使用但可能会忘记包含它,因此会变得非常繁琐且容易出错。<% flash.clear %>
,同样地,这是一个混乱的角色,视图驱动应用程序状态。答案 0 :(得分:1)
<div id="jsflash"></div>
,您需要将flash块包装在if语句中。您可以在Application.rb
<% if flash.present? %>
//Call your Render Flash Here
<% end %>
2.3.4。我从来没有在我制作的几十个flash应用程序中使用flash.clear
。你的flash调用似乎也有一些不必要的重复。