rails 4 — flash avis
Je travaille toujours sur mes rails 4 site de démo, et je vois une chose étrange. Dans le contrôleur, il a une ligne comme ceci:
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
Ce qui rend un message flash dans la redirection de la page, ce qui est prévu. Cependant, la classe css joint au message div est alert alert-notice
plutôt qu'un valide Bootstrap alerte de classe, comme alert-info
.
Où est la classe de ce flash, et comment puis-je le personnaliser?
Aussi, si je suis la suppression d'un enregistrement via ajax, il est un moyen d'accéder à la base de flash conteneur pour afficher le message via js, ou dois-je afficher /masquer mon propre message flash div juste pour les requêtes ajax?
EDIT: mon Michael Hartl inspiré layouts/application.html.erb
:
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
</div>
Merci!
EDIT 2:
Peut-être que je n'ai pas été assez clair dans ma question initiale. Je comprends exactement comment la classe est définie dans l'objet flash dans ce cas. Je suis intéressé à apprendre comment utiliser et personnaliser le notice:
dans le format.html
bloc. Il semble qu'il devrait être un moyen de passer d'une classe par le biais de cette avis? Ou n'est-ce pas un core Rails de chemin de faire les choses?
- Cela dépend de votre point de vue. Regardez votre
views/layouts/application.html.*
fichier et de voir où il est rendu leflash
de contenu. - Mais l'alerte alerte-avis EST valide classe de bootstrap. Vous pouvez toujours flash [:yourchoiceofalert] avant l'action de redirection
- Vous pouvez avoir besoin de supprimer un échafaudage.css de vos biens, car il brouille certaines classes de bootstrap
- getbootstrap.com/components/#alerts -- je ne vois pas d'alerte de l'avis en tant que classe valide. Ai-je raté quelque chose? Aussi, il n'y a pas d'échafaudage.css à mon actif. Merci!
- Ouais, désolé, le préavis n'est pas un cas, ce que je voulais souligner, c'est que vous avez besoin d'avoir le mot d'alerte comme "alert alert- "classe"". Désolé pour trompeuses, devrais-je l'ai fait.
Vous devez vous connecter pour publier un commentaire.
Dans
application.html.erb
, vous seriez de l'affichage de laflash
messages.Mise à jour de ce code comme ci-dessous
Vous pouvez ajouter les classes que vous souhaitez appliquer au message flash dans la
class
option.MODIFIER
La classe est la configuration que
alert alert-notice
en raison dealert alert-<%= key %>
dans votre code.Lorsque vous appelez
redirect_to @widget, notice: 'Widget was successfully created.
Un message flash serait ajouté dans
flash
de hachage avec clé commenotice
et de la valeur queWidget was successfully created.
, c'est à dire,EDIT #2
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
notice: 'Widget was successfully created.'
est un argument transmis àredirect_to
méthode. Il est ajouté àflash
de hachage dans cette méthode.notice:
travaille dans leformat
bloc, et comment il est accessible et transformée en uneflash
plutôt que de passer unflash
objet.format
bloc? Je ne suis pas vous.format.html
bloc-- comment est-ce quenotice:
élément interprété, et où? Comment pouvez-vous définir une classe personnalisée pour le flash?notice: element get interpreted,
question.Where is the class being set for this flash, and how do I customize it?
Ajouter à
app/controllers/application_controller.rb
et puis vous pouvez le faire dans votre contrôleurs
à condition que vous avez cela dans vos mises en page
Si vous ne voulez pas gâcher avec votre
ApplicationController
comme @Sachin Mour indiqué, vous pouvez simplement ajouter un peu plus d'CSS clases, en conséquence:dans
app/assets/stylesheets/custom.scss
:Étape par étape tutoriel, comment aborder les messages flash avec de concevoir et de bootstrap, vous pouvez trouver ici