Rails::errorを指定したredirect_to、ただしflash [:error]は空


117

flash [:error]値の設定中にリダイレクトを実行しようとしています。(Rails 3.0.10)

私の見解では

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

実行しても問題redirect_to show_path, :notice => "ok"なく動作しますが、実行redirect_to show_path, :error => "error"しても表示されません。

何が欠けているのでしょうか?

回答:


237

Rails APIで述べたように、デフォルトでは:noticeと:alertがフラッシュハッシュ値として適用されます。:error値を設定する必要がある場合は、次のように設定できます。

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

3
明確にするために:redirect_to(show_path, {:flash => { :error => "Insufficient rights!" }})。この形式は、urlオプションを使用してshow_pathを作成する場合に必要です。
スパイ2013

1
それは私にとっても
うまくいき

2
Rails 5で働いた
Richard Peck

1
:あなたはにルビー1.9形式から離れて移動することができますredirect_to(show_path, flash: { error: "Insufficient rights!" })
mmsilviu

17

別のパスにリダイレクトした後、フラッシュを保持するのに問題がある場合は、これを使用してください。

flash.keep

メソッドで、リダイレクトする前に。


:私は監督のページに示されている以下の取得#<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8> #<ActionDispatch::Flash::FlashHash:0x007f88c6e0c3c8>
Hengjie

それは質問の答えではないようですが、それは私の問題の解決策でした!
Claudio Shigueo Watanabe 2014

0

本当にPRGパターンに従うために、このプロジェクトはうまくいくのだろうか

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

ユーザーとしてPRGをフォローしていないアプリは我慢できません..... POST後6ページ経ち、戻るボタンを押して10ページ前に戻ると、「このがらくたを再投稿しますか?」 ...いいえ、もちろん違います。以前見たページに戻りたいだけです。

非PRGアプリはユーザーにとって非常に迷惑です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.