68

Railsコントローラーに次のコードがあります。

flash.now[:notice] = 'Successfully checked in'
redirect_to check_in_path

次に /check_in ビューで:

<p id="notice"><%= notice %></p>

ただし、通知は表示されません。コントローラーでリダイレクトしないと完璧に動作します:

flash.now[:notice] = 'Successfully checked in'
render action: 'check_in'

ただし、リダイレクトが必要です...そのアクションのレンダリングだけではありません。リダイレクト後にフラッシュ通知を受け取ることはできますか?

4

6 に答える 6

124

を取り外します.now。だからただ書く:

flash[:notice] = 'Successfully checked in'
redirect_to check_in_path

.now、リダイレクトではなくレンダリングのみを行う場合に使用することを特に想定しています。リダイレクトする場合、.nowは使用されません。

于 2013-03-20T20:39:58.637 に答える
40
redirect_to new_user_session_path, alert: "Invalid email or password"

代わりに:alert使用できます:notice

表示する

于 2013-03-21T10:52:12.803 に答える
20

または、1行で実行できます。

redirect_to check_in_path, flash: {notice: "Successfully checked in"}
于 2014-12-12T16:10:55.453 に答える
3

/check_in ビューに含めるのを忘れていたため、同じ問題があり、あなたの質問で解決しました。

<p id="notice"><%= notice %></p>

コントローラーでは、1行だけ:

redirect_to check_in_path, :notice => "Successfully checked in"             
于 2015-02-08T18:44:40.063 に答える