Rails: redirect_to com: erro, mas flash [: erro] vazio

117

Estou tentando fazer um redirecionamento ao definir o valor do flash [: erro]. (Rails 3.0.10)

Na minha opinião eu tenho

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

Se eu fizer um redirect_to show_path, :notice => "ok", funciona bem, mas se eu fizer redirect_to show_path, :error => "error"isso não aparecerá.

o que eu poderia estar faltando?

Daniel
fonte

Respostas:

237

Conforme declarado na API Rails apenas: notice e: alert são por padrão aplicados como um valor flash hash. Se você precisar definir o valor: error, poderá fazer assim:

redirect_to show_path, flash: { error: "Insufficient rights!" }
Tarnschaf
fonte
3
Para maior clareza: redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }}). Este formato é necessário se você deseja criar show_path com opções de url.
spyle de
1
Isso funcionou para mim também, eu só me pergunto qual foi o pensamento por trás de apenas aviso / alerta estar no hash flash
jbnunn
2
Trabalhou no Rails 5
Richard Peck
1
Você pode mudar do formato Ruby 1.9 para:redirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu
17

Se você estiver tendo problemas para manter o flash após redirecionar para outro caminho, use isso.

flash.keep

no seu método, antes de redirecionar.

Ramiz Raja
fonte
Acabei de receber o seguinte mostrado na página direcionada:#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie
Parece que não é a resposta da pergunta, mas é a solução do meu problema!
Claudio Shigueo Watanabe
0

Para realmente seguir o padrão PRG, eu me pergunto se este projeto funciona bem

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

Eu não suporto apps que não sigam PRG como um usuário ... Eu estive 6 páginas após um POST e apertei o botão Voltar para voltar a 10 páginas atrás e sou bloqueado por "você quer postar novamente esta porcaria". ...não, claro que não. Só quero voltar a uma página que já tinha visto.

aplicativos não PRG são muito irritantes para os usuários.

Dean Hiller
fonte