コントローラにredirect_to 'index'
を使用すると、次のエラーが発生します。ルビー1.8.7とRails 3.1.1-Rails raise InvalidURIError
Started GET "/presentations/1" for 127.0.0.1 at Tue Nov 15 01:48:42 +0200 2011
Processing by PresentationsController#show as HTML
Parameters: {"id"=>"1"}
Redirected to http://localhost:3000index
Completed 302 Found in 2ms
[2011-11-15 01:48:42] ERROR URI::InvalidURIError: the scheme http does not accept registry part: localhost:3000index (or bad hostname?)
-onそして、これはどうやら「http://localhost:3000index代わりのhttp://localhost:3000/presentations/indexにリダイレクトしようとしているが、私はcouldn routes.rbを
..
get 'about_us' => 'presentations#index', :as => 'about_us'
..
resources :presentations
にどのように見えるかですどうして? redirect_to presentations_path
またはredirect_to :controller => 'presentations', :action => 'index'
を使用すると、すべて正常に動作しますが、なぜこれが起こっていますか?私はコントローラのパラメータを定義せずにredirect_to
を使うことができるはずだと思っていました。あなたの現在のルートファイルあたりとして
私はルートを確認しても大丈夫です。私はすでに私が言ったように動作させることができます。私はちょうど私がそれがすべき方法で動作するためにそれを見逃しているのだろうか?明らかに、 'redirect_to 'index'を使うと問題はないはずですが、そこには問題があります。私はこのような問題を無視して別の解決策を使用することはできません。 –
Aha、redirect_toはパラメータとしてアクション名だけを使用しません。 http://api.rubyonrails.org/classes/ActionController/Redirecting.htmlをチェックアウトすると、それに応答するすべてのパラメータが表示されます。 – membLoper