Quelle est la différence lors de l'utilisation de flash :erreur :alerte, et :avis?
Comme le titre de la question demande, je suis intéressé de savoir si il y a une différence lors de l'utilisation de flash[:error]
, flash[:alert]
, et flash[:notice]
. Si oui, quand est-il approprié d'utiliser chacun, et pourquoi?
Vous devez vous connecter pour publier un commentaire.
flash est un Rails de mécanisme de persister quelques informations sur 2 demandes. Vous avez mis quelque chose dans flash de hachage dans une requête et il est disponible dans la prochaine requête que vous recevez de ce même client.
Depuis flash est tout simplement un "hash" vous pouvez l'utiliser comme un. Ce qui signifie que vous pouvez fournir votre préféré clé (:alerte/://erreur:avis) et mettre ce message de la chaîne que vous souhaitez que la valeur.
La sémantique de quoi ou quand les utiliser :alerte/://erreur:avis sont vraiment à vous de gérer. Cela dit, la meilleure pratique générale est d'utiliser :avis quand les choses sont OK et est affiché dans une couleur verdâtre, et l'utilisation :erreur lorsque les choses ne sont PAS d'ACCORD et est affiché dans une teinte rougeâtre. Il est complètement d'accord si vous souhaitez utiliser :alerte pour un autre type de message sur votre application web. Je l'ai déjà utilisé à des fins d'information dans une teinte jaunâtre.
:alert
et:notice
fonctionnellement différent de d'autres touches que vous inventez.FlashHash
fournit la commodité des accesseurs pour les deux:flash.alert
,flash.notice
. Rails de " préférence pour ces deux autres se cabre son chemin dansredirect_to
qui n'acceptent:alert
,:notice
, ou:flash
.Cependant, un s'engager en juillet 2012 à bord des Rails permet le privilège d'ajouter d'autres flash types. Voici un exemple d'ajout de flash types de Rails 4:
c'est juste une classification. il génère le div #erreur.erreur ou div#avis.avis vous vous connectez la logique que vous souhaitez ci-dessus
petit échantillon :
Elles sont simplement différentes classifications. Je l'utilise principalement
:error
et:notice
. Remarquez que j'utilise pour les messages d'information ("votre mot de passe a été changé", "les modifications enregistrées", etc). Je réserve:error
pour l'essentiel des choses et des problèmes ("Vos mots de passe ne correspondent pas", "la Connexion a échoué", etc)J'utilise aussi un
:message
classe trop passer le long de laStandardError
message pris au piège dans mon gestionnaires d'exception. À l'aide de 2 ou 3 classes permet d'afficher jusqu'à que de nombreux messages en réponse à un événement ou d'une suite, chacune véhiculant un aspect différent de l'issue, par exemple, d'information, une erreur basée sur la demande qui sait et un message d'erreur basé sur ce que le système sait.