Rails: redirect_to con: error, ma flash [: error] vuoto


117

Sto tentando di eseguire un reindirizzamento durante l'impostazione del valore flash [: errore]. (Rails 3.0.10)

A mio avviso l'ho fatto

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

Se lo faccio redirect_to show_path, :notice => "ok"funziona bene, ma se lo faccioredirect_to show_path, :error => "error" non viene visualizzato.

cosa potrei perdermi?

Risposte:


238

Come indicato solo nell'API di Rails : notice e: alert vengono applicati per impostazione predefinita come valore hash flash. Se devi impostare il valore: error, puoi farlo in questo modo:

redirect_to show_path, flash: { error: "Insufficient rights!" }

3
Per chiarezza: redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }}). Questo formato è necessario se desideri creare show_path con le opzioni dell'URL.
spyle

1
Ha funzionato anche per me, mi chiedo solo quale fosse il pensiero dietro il solo avviso / avviso nell'hash flash
jbnunn

2
Ha lavorato in Rails 5
Richard Peck

1
Puoi passare dal formato rubino 1.9 a:redirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu

17

Se hai problemi a mantenere il flash dopo il reindirizzamento a un altro percorso, usa questo.

flash.keep

nel tuo metodo, prima di reindirizzare.


Ho appena ricevuto quanto segue nella pagina diretta:#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie

Sembra che non sia la risposta alla domanda ma è stata la soluzione del mio problema!
Claudio Shigueo Watanabe

0

Per seguire veramente lo schema PRG, mi chiedo se questo progetto funzioni bene

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

Non sopporto le app che non seguono PRG come utente ..... Sono stato 6 pagine dopo un POST e ho premuto il pulsante Indietro per tornare a 10 pagine fa sono stato bloccato da "vuoi ripubblicare questa schifezza". ...no certo che no. Voglio solo tornare a una pagina che avevo visto prima.

le app non PRG sono molto fastidiose per gli utenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.