Rails: redirect_to avec: erreur, mais flash [: error] vide

117

J'essaie de faire une redirection lors de la définition de la valeur flash [: error]. (Rails 3.0.10)

À mon avis, j'ai

<p id="error"><%= flash[:error] %></p>
<p id="notice"><%= flash[:notice] %></p>

Si je fais un redirect_to show_path, :notice => "ok"ça fonctionne bien, mais si je le fais, redirect_to show_path, :error => "error"ça ne s'affiche pas.

que pourrais-je manquer?

Daniel
la source

Réponses:

238

Comme indiqué dans l' API Rails uniquement: notice et: alert sont appliqués par défaut en tant que valeur de hachage flash. Si vous devez définir la valeur d'erreur:, vous pouvez le faire comme ceci:

redirect_to show_path, flash: { error: "Insufficient rights!" }
Tarnschaf
la source
3
Pour plus de clarté: redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }}). Ce format est nécessaire si vous souhaitez créer show_path avec des options d'URL.
spyle
1
Cela a fonctionné pour moi aussi, je me demande simplement ce que la pensée était derrière le seul avis / alerte étant dans le hachage flash
jbnunn
2
A travaillé dans Rails 5
Richard Peck
1
Vous pouvez passer du format ruby ​​1.9 au:redirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu
17

Si vous rencontrez des problèmes pour conserver le flash après la redirection vers un autre chemin, utilisez-le.

flash.keep

dans votre méthode, avant de rediriger.

Ramiz Raja
la source
Je viens de voir ce qui suit dans la page dirigée:#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie
Il semble que ce n'était pas la réponse à la question mais c'était la solution de mon problème!
Claudio Shigueo Watanabe
0

Pour vraiment suivre le modèle PRG, je me demande si ce projet fonctionne bien

https://github.com/tommeier/rails-prg

Je ne supporte pas que les applications ne suivent pas PRG en tant qu'utilisateur ..... J'ai été 6 pages après un POST et j'ai appuyé sur le bouton de retour pour revenir à 10 pages il y a être bloqué par "voulez-vous republier cette merde". ...non bien sûr que non. Je veux juste revenir à une page que j'avais déjà vue.

Les applications non-PRG sont très très ennuyeuses pour les utilisateurs.

Dean Hiller
la source