Пользователь, зарегистрированный в моем приложении, отображает сообщения об успешном выполнении или ошибках, хранящиеся во флэш-памяти. Проблема в том, что если регистрация пользователя не удалась, появляется сообщение. Но если затем пользователь покидает эту страницу, флэш-сообщение по-прежнему появляется на любой странице. Если вы обновите эту страницу, она исчезнет.
Это соответствующий код пользовательского контроллера:
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 %>