Rieles: redirect_to con: error, pero parpadea [: error] vacío

117

Estoy intentando realizar una redirección mientras configuro el valor de flash [: error]. (Rieles 3.0.10)

En mi opinión tengo

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

Si lo hago redirect_to show_path, :notice => "ok", funciona bien, pero si lo hago redirect_to show_path, :error => "error", no aparece.

¿Qué podría estar perdiendo?

Daniel
fuente

Respuestas:

237

Como se indica en la API de Rails únicamente: aviso y: alerta se aplican de forma predeterminada como un valor hash flash. Si necesita establecer el valor: error, puede hacerlo así:

redirect_to show_path, flash: { error: "Insufficient rights!" }
Tarnschaf
fuente
3
Para mayor claridad: redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }}). Este formato es necesario si desea crear show_path con opciones de URL.
Spyle
1
Eso también funcionó para mí, solo me pregunto cuál fue el pensamiento detrás del aviso / alerta que está en el hash de flash
jbnunn
2
Trabajó en Rails 5
Richard Peck
1
Puede alejarse del formato ruby ​​1.9 a:redirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu
17

Si tiene problemas para mantener el flash después de redirigir a otra ruta, utilice esto.

flash.keep

en su método, antes de redirigir.

Ramiz Raja
fuente
Acabo de ver lo siguiente que se muestra en la página dirigida:#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie
¡Parece que no es la respuesta a la pregunta, sino la solución de mi problema!
Claudio Shigueo Watanabe
0

Para seguir verdaderamente el patrón PRG, me pregunto si este proyecto funciona bien

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

No soporto que las aplicaciones no sigan a PRG como usuario ... He estado 6 páginas después de un POST y presioné el botón Atrás para volver a las 10 páginas atrás. Me bloquearon "¿Quieres volver a publicar esta basura?". ...no claro que no. Solo quiero volver a una página que había visto antes.

Las aplicaciones que no son de PRG son muy, muy molestas para los usuarios.

Dean Hiller
fuente