Comment puis-je désactiver tous les messages flash Devise gem ("connecté avec succès", "vous êtes déconnecté")? Merci.Rails Désactiver concevoir des messages flash
Répondre
Probablement la meilleure façon de le faire est de
- Définir chaque message comme une chaîne vide
- Vérifiez la longueur de la chaîne avant de vous montrer un message flash.
Dans votre fichier devise.en.yml
, indiquez chaque message vide:
en:
errors:
messages:
not_found: ''
already_confirmed: ''
not_locked: ''
etc. Ensuite, dans votre mise en page, vérifiez les chaînes flash vierges avant de les sortie.
<% flash.each do |key, value| %>
<%= content_tag :div, value, :class => "flash #{key}" unless value.blank? %>
<% end %>
Très élégant! Pour mon idée (2.1.0), il suffit de régler la chaîne sur '' fait l'affaire sans vérifier si elle est vide? –
Même après 4 ans cela fonctionne toujours: +1, merci – Abhinay
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 les vues vous-même et de décider ce que vous voulez garder ou jeter (messages flash) .
Cela ressemble à une réponse à une autre question. Vous ne pouvez pas désactiver les messages flash avec cela. Voir la réponse de Brandon. – Voldy
Vous pouvez si vous affichez vos messages flash dans chaque vue, en le supprimant. Mais il semble que cette question suppose qu'ils sont dans la mise en page. –
Une réponse mieux adaptée pour moi était de passer outre la session Devise Controller comme celui-ci
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
Ceci remplace en toute sécurité la créer et de détruire la méthode supprimant le message flash
dans Rails 4 et Devise 3.4.1, j'ai dû ajouter ceci aux routes: devise_for: users, controllers: {sessions: "sessions"} –
Je suis en mesure de les désactiver dans un contrôleur donné en remplaçant is_flashing_format?
:
def is_flashing_format?
false
end
J'utilise 3.5.6
DevisePour Rails 5.0.6 ce code fonctionnera.
app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
def new
flash.clear
super
end
end
Ne pas oublier les routes.
config/routes.rb
devise_for :users, controllers: { sessions: 'sessions' }
- 1. Comment désactiver certains de mes messages flash dans les rails
- 2. concevoir des messages instantanés dynamiques
- 3. concevoir rails - messages d'erreur dans différents affichage?
- 4. Rails messages flash en Java
- 5. Rails messages flash ne pas effacer
- 6. Faire des messages d'erreur Concevoir apparaissent
- 7. Désactiver les sessions pour concevoir
- 8. Concevoir, message flash lorsque require_no_authentication + rediriger
- 9. Rails/Concevoir - Personnaliser le message flash (devise.en.yml) avec un link_to
- 10. concevoir un message flash personnalisé
- 11. Affichage des messages d'erreur dans les rails
- 12. ruby on rails messages flash -: alerte: erreur: remarque et: succès?
- 13. Qu'est-il arrivé aux messages flash dans Rails 3.2.1?
- 14. rails 3.1 concevoir confirmable
- 15. Comment accéder aux messages flash dans les rails métalliques
- 16. Ruby on Rails: Observateurs et messages flash [: notice]?
- 17. RAILS CONCEVOIR 3 Problème
- 18. rails Défaire génèrent des vues concevoir
- 19. Rails +: redirigent vers Concevoir des ressources utilisateur
- 20. PHP Comment implémenter des messages flash
- 21. Ruby on Rails: concevoir problème
- 22. Comment utiliser correctement les messages Flash dans les Rails 3.2
- 23. Rails concevoir l'enregistrement
- 24. Rails concevoir after_sign_up_path rediriger
- 25. rails concevoir edit_user_password_path
- 26. Rails concevoir 1.3.4 confirmable
- 27. Rails moteur et concevoir
- 28. Rails aider avec concevoir
- 29. Rails concevoir se connecter
- 30. Rails concevoir before_destroy user
Doublons cette question http://stackoverflow.com/questions/5281365/selectively-turning-off-devises-flash-notices-in-rails-3 – Voldy