2009-06-19 12 views

答えて

116

この問題を解決するには2通りの方法があります。 一つは、あなたのフラッシュは、現在のリクエストの終了時に廃棄しなければならないと、リダイレクト後に使用することを意図していないとき

flash.now[:notice] 

を使用することです。

もう一つはリクエストの終了時に

flash.discard(:notice) 

を呼び出すことです。 どちらが最適かは、アプリケーションの動作によって異なります。

http://api.rubyonrails.org/classes/ActionDispatch/Flash/FlashHash.html

+1

+1、さらに行動を説明するために、標準のフラッシュメッセージは「次へ」の要求のために保持されることを意図しています。例えば。作成または編集要求を処理している間にフラッシュを生成してから、ユーザーを表示画面にリダイレクトします。ブラウザがショー画面への次のリクエストを行うと、フラッシュが表示されます。ショー画面自体に実際にフラッシュを生成する場合は、flash.now – asc99c

+0

[この動作を説明するルビーガイドセクション](http://guides.rubyonrails.org/action_controller_overview.html#flash-now)を使用してください。 – br3nt

14

私はこれを解決しました。

flash.now[:notice] = "Sorry, we weren't able to log you in with those details." 
render :action => :new 

flash.nowのことキーパーツ[::予告]の代わりにフラッシュの[:告知]それを回避する方法は、使用することです。