Сообщение об ошибке 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 %>
0
задан agente_secreto 1 August 2011 в 20:59
поделиться