1

1createつのコントローラーにメソッドがあり、このコントローラーの最後にredirect_to別のコントローラー/ビューが必要です。flash[:notice]最初のコントローラーが実行され、次のredirect_toビューがレンダリングされた後、どのように表示できますか?

最初のコントローラーのコードは次のとおりです。

if @list.save
        redirect_to root_path, :notice => "Created!"

また、ここでも機能しないことに気づきました。

if @list.save
    redirect_to root_path, :alert => "Created!"

ルートファイルは次のとおりです。

root :to => 'sessions#new'
4

3 に答える 3

4

追加のリクエストでフラッシュメッセージを永続化するには、Railsガイドのフラッシュセクションflash.keepから次のコマンドを使用できます。

このアクションがroot_urlに対応しているが、ここにあるすべてのリクエストをUsersController#indexにリダイレクトするとします。アクションがフラッシュを設定してここにリダイレクトする場合、通常、別のリダイレクトが発生すると値は失われますが、「keep」を使用して、別のリクエストに対して永続化することができます。

明確化:この解決策は、ダブルリダイレクトが原因でフラッシュが失われた場合にのみ適用されます。

于 2012-06-18T07:51:12.137 に答える
0

Rails のどのバージョンを使用していますか? 使用している構文は比較的新しい機能です。長い道のりを試してみてください:

flash[:notice] = 'Created'
redirect_to root_path
于 2012-06-18T08:32:24.033 に答える
0

これを試しましたか?

redirect_to(whatever_path, :notice=>"hello world")

また、使用できます:error

redirect_to(whatever_path, :error=>"hello error")
于 2012-06-18T06:37:01.347 に答える