2010-08-11 805 views
11

Estoy mostrando mensajes de error y aviso en mi aplicación con un método de ayuda como se muestra a continuación.Mensajes flash en Rails que se transfieren a la página siguiente

def display_flash_content 
    [:error, :notice].map do |key| 
     collection = flash[key].blank? ? [] : (flash[key].respond_to?(:map) ? flash[key] : [flash[key]]) 
     collection.map {|item| content_tag(:div, item, :class => key.to_s) } 
    end 
    end 

y mi diseño tiene esta

<%= display_flash_content %> 

necesito mostrar estos mensajes cuando lo haga alguna operación y luego redirigir a una página específica (esto funciona muy bien). Pero mi problema es que este mensaje flash persiste entre las páginas. Viene dos veces entre las páginas donde debe borrarse inmediatamente una vez que se muestra al usuario.

Cómo manejar este escenario. ¡Por favor, ayúdame!

Respuesta

29

La forma en que está mostrando los mensajes flash está bien. Creo que el problema es cómo los estás configurando. Si está configurando mensajes flash y no está redirigiendo, puede asignarlo al flash.now[:notice] en lugar de flash[:notice], por ejemplo, y su mensaje no se bloqueará después de la redirección.

Cuestiones relacionadas