Quel flash pour les validates_*?

Bonjour,

J’ai un zoli CSS dans lequel je crée une boi-boite pour y mettre le
flash[:notice]. Tout se passe bien, j’ai bien mes messages flash (par
exemple les infos de connexion et de deconnexion de l’utilisateur) qui
s’y
retrouvent.

Mais lors de l’inscription par exemple (j’utilise act_as_authenticated),
si
il y a des erreurs dans les données (login déjà utilisé, mot de passe
non
confirmé etc…), la liste des erreurs se trouve dans le “yield” global,
et
non dans ma boi-boite.

C’est normal ? Comment l’isoler ?

Merci !

gUI


Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/

Bonjour,

Ce n’est pas les mêmes choses. C’est ces classes CSS :

.fieldWithErrors {
padding: 2px;
background-color: red;
display: table;
}

#errorExplanation {
width: 400px;
border: 2px solid red;
padding: 7px;
padding-bottom: 12px;
margin-bottom: 20px;
background-color: #f0f0f0;
}

#errorExplanation h2 {
text-align: left;
font-weight: bold;
padding: 5px 5px 5px 15px;
font-size: 12px;
margin: -7px;
background-color: #c00;
color: #fff;
}

#errorExplanation p {
color: #333;
margin-bottom: 0;
padding: 5px;
}

#errorExplanation ul li {
font-size: 12px;
list-style: square;
}

++

Le 21 oct. 07 à 13:59, Guillaume B. a écrit :

Guillaume :

C’est normal ? Comment l’isoler ?
Si tu mets l’error_messages_for :diplodocus dans le même

que les messages flash, alors les messages s'afficheront au même endroit.

(j’ai l’impression d’enfoncer une porte de saloon)

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Moi ce que j’ai fait, c’est que j’ai créé un helper qui me permet
d’afficher
tous mes messages (notice, success et error). Jettes-y un coup d’oeil :
http://snippetbucket.com/boldr/codes/3/messages-flash-et-jquery (ne
t’occupes pas de la partie Javascript).

Dans ton layout tu mets <%= flash_message %> Ã la place de ta div qui
affiche les notices et au niveau des vues de tes formulaires, tu
remplaces
error_messages_for :quelquechose par flash_error_for :quelquechose

Après tu auras bien sûr à styler un peu le texte des messages d’erreurs
comme Jordan t’a montré.


Nicolas Mérouze
Développeur Ruby On Rails / Associé de Yeasty Mobs
http://boldr.fr / http://yeastymobs.com

Dans ton layout tu mets <%= flash_message %> Ã la place de ta div qui
affiche les notices et au niveau des vues de tes formulaires, tu remplaces
error_messages_for :quelquechose par flash_error_for :quelquechose

En fait j’ai qques soucis :

  • flash_message dans mon layout me renvoie bouler (comme quoi ça existe
    pas). j’ai plutot mis dans mon layout ma boi-boite dans laquelle
    j’affiche
    le contenu du flash[:error] (puisque si j’ai bien tout compris ton
    helper,
    il met dans flash[:error] le contenu des error_messages_for)
  • si je mets <%= error_messages_for :joueur %> dans ma vue, je me
    retrouve
    avec les messages d’erreur dans le yield ET dans le flash !!!. je l’ai
    donc
    simplement mis entre <% %>

En tous cas merci, c’est ce à quoi je voulais aboutir !

gUI


Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/

En fait j’ai qques soucis :

  • flash_message dans mon layout me renvoie bouler (comme quoi ça existe
    pas). j’ai plutot mis dans mon layout ma boi-boite dans laquelle j’affiche
    le contenu du flash[:error] (puisque si j’ai bien tout compris ton helper,
    il met dans flash[:error] le contenu des error_messages_for)

C’est <%= flash_messages %> avec un “s”, je me suis trompé dans mon
précédent message.

  • si je mets <%= error_messages_for :joueur %> dans ma vue, je me
    retrouve

avec les messages d’erreur dans le yield ET dans le flash !!!. je l’ai donc
simplement mis entre <% %>

Oui exact, j’ai oublié de te dire d’enlever le =


Nicolas Mérouze
Développeur Ruby On Rails / Associé de Yeasty Mobs
http://boldr.fr / http://yeastymobs.com