0

私のRailsコントローラーから、createやりたい方法で

redirect_to @post(:notice => "Post successful', :status => "Success!")

show.html.erbおよび を使用<%= notice %>してパラメータにアクセスします。<%= status %>

しかし、うまくいきません。どうすれば修正できますか?

routes.rbファイル:

Archive::Application.routes.draw do
  resources :posts
  root :to => "Posts#new"
end
4

2 に答える 2

2

おそらく機能しない理由は、応答の一部として返されるHTTP ステータス コードをオーバーライドしているためです。このステータス コードは、redirect_to 構文で を設定することによって設定:statusされ、ブラウザが特定のアクションを決定するために使用されます。さまざまなステータス コードの詳細については、こちらのW3C HTTP ステータス コードを参照してください。

簡単に言うと、リダイレクトを成功させるには3XX、ブラウザが HTTP 応答のロケーション ヘッダーを確認し、そこで指定された URL をロードするためのコードが必要です。リダイレクトを適切に機能させたい場合は、以下の構文を使用できます。

redirect_to @post, :notice => "Post successful"

何らかの理由で手動で設定したい場合は、次のようにできます。

redirect_to @post, :notice => "Post successful", :status => 301

数値ステータス コードの代わりに使用できる記号もいくつかあります。これについては、Rails のドキュメントで redirect_to を参照してください。

于 2012-10-19T23:06:01.227 に答える
0

使用してみましたか:

redirect_to post_path , :notice => "Post successful", :status => "Success!"
于 2012-10-19T19:53:59.683 に答える