45 votes

Rails Désactiver les messages flash

Comment puis-je désactiver tous les messages flash de Devise gem ("connecté avec succès", "vous êtes déconnecté")? Merci.

70voto

Brandon Tilley Points 49142

La façon la plus simple de le faire est probablement de

  1. Définir chaque message comme une chaîne vide
  2. Vérifiez la longueur de la chaîne avant d'afficher un message flash.

Dans votre fichier devise.en.yml , spécifiez chaque message comme vide:

 en:
  errors:
    messages:
      not_found: ''
      already_confirmed: ''
      not_locked: ''
 

etc. Ensuite, dans votre mise en page, vérifiez la présence de chaînes flash vierges avant de les générer.

 <% flash.each do |key, value| %>
  <%= content_tag :div, value, :class => "flash #{key}" unless value.blank? %>
<% end %>
 

34voto

acrogenesis Points 62

Une réponse qui me convenait mieux était de remplacer le contrôleur de session Devise comme ceci

 class SessionsController < Devise::SessionsController


  # POST /resource/sign_in
  def create
    super
    flash.delete(:notice)
  end

  # DELETE /resource/sign_out
  def destroy
    super
    flash.delete(:notice)
  end

end
 

Cela remplace en toute sécurité la méthode create and destroy qui supprime le message flash

-4voto

Tony Daly Points 91

Devise comprend un générateur pratique pour copier toutes les vues dans votre projet:

 rails generate devise:views
 

De cette façon, vous pouvez modifier vous-même les vues et décider de ce que vous voulez conserver ou jeter (messages flash).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X