用户注册我的应用程序会显示存储在闪存中的成功或错误消息。问题是,如果用户注册失败,则会显示消息。但是,如果用户离开该页面,则该Flash消息仍然显示在任何一个页面中。如果刷新该页面,它会消失。错误消息离开页面后出现闪烁错误消息(Rails)
这是用户控制器的相关的代码:
def create
@user = User.new(params[:user])
if @user.save
flash[:status] = {}
flash[:status][:type], flash[:status][:message] = 'success', 'Welcome to secondappr'
redirect_to @user
else
flash[:status] = {}
flash[:status][:type], flash[:status][:message] = "error", "#{pluralize(@user.errors.count, 'error')} caused your signup attempt to FAIL:"
flash[:details] = @user.errors.full_messages.each { |e| e }
@user.password = ''
@user.password_confirmation = ''
@title = "Sign up#{ @puns.sample }"
render 'new'
end
end
这是一个显示闪光消息的应用程序的布局视图的一部分:
<% if flash.any? %>
<div class='flash <%= flash[:status][:type]%>'>
<%= content_tag(:strong, flash[:status][:message]) %>
<ul class="details">
<% if flash[:details] %>
<% flash[:details].each do |d| %>
<%= content_tag(:li, d) %>
<% end %>
<% end %>
</ul>
</div>
<% end %>
谢谢。虽然这有点令人困惑,不是吗?我没有真正理解它 –