2011-11-15 44 views
0

コントローラに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を使うことができるはずだと思っていました。あなたの現在のルートファイルあたりとして

答えて

2

、あなたは

redirect_to '/index' 

を入力していたのであれば、それはうまく動作します

/about_us routes to {:controller => :presentations, :action => :index} 

言います。タイプ、レーキ:あなたが望むようにルートが確実に生成されるように、コンソールのルートを設定します。

また、http://guides.rubyonrails.org/routing.htmlは、お使いになるための優れたリソースです。

+0

私はルートを確認しても大丈夫です。私はすでに私が言ったように動作させることができます。私はちょうど私がそれがすべき方法で動作するためにそれを見逃しているのだろうか?明らかに、 'redirect_to 'index'を使うと問題はないはずですが、そこには問題があります。私はこのような問題を無視して別の解決策を使用することはできません。 –

+0

Aha、redirect_toはパラメータとしてアクション名だけを使用しません。 http://api.rubyonrails.org/classes/ActionController/Redirecting.htmlをチェックアウトすると、それに応答するすべてのパラメータが表示されます。 – membLoper

関連する問題