1

POSTリクエストをリダイレクトしようとすると、Railsのフラッシュハッシュが消去されていることがわかりました。

最初のリクエストがGETの場合、リダイレクトは正常に機能します。

config/routes.rbにあります

post 'test/hello' 
#get 'test/hello' #uncomment this line and comment out the post and the flash is preserved
get 'test/goodbye'

app / controllers/test_controller.rbにあります

def hello
    respond_to do |format|
        format.html do
            redirect_to movies_goodbye_url, :notice => "I disappear on post requests"
        end
    end
end

def goodbye
end

app / views / test/goodbye.html.hamlで

%h1 Test#goodbye
%p#alert= alert
%p#notice= notice

このアクションで、エラーの場合に既存のビューの1つにリダイレクトするフォーム送信からの投稿を処理する必要があります。私はレールにかなり慣れていないので、このユースケースを処理するためのより良い方法がある場合は、私に知らせてください。

4

1 に答える 1

2

そこにを追加してみてくださいflash.keep

flash.keep(:notice)
redirect_to movies_goodbye_url, :notice => "I disappear on post requests"

参照:リダイレクトのフラッシュメッセージが機能しない

于 2012-09-15T23:01:55.677 に答える