2011-09-23 8 views
1

Hartl railsチュートリアル(http://ruby.railstutorial.org/)のリスト5.29の周辺には、matchメソッドだけでなく、users/newのgetメソッドを強制的に呼び出させるルーティングエラーについての議論があります。これは後の章のresourcesメソッドを呼び出すことで後で修正されます。Hartlの書籍の第5章ルーティングにuser.newのget()が必要なのはなぜですか?

私の一般的な質問は、次のリストのPagesControllerアクションでget()を呼び出す必要がない理由です。

#5.29 
SampleApp::Application.routes.draw do 
    get "users/new" 

    match '/signup', :to => 'users#new' 

    match '/contact', :to => 'pages#contact' 
    match '/about', :to => 'pages#about' 
    match '/help', :to => 'pages#help' 

    root :to => 'pages#home' 
end 

答えて

1

違いは、ルートが一致するHTTP要求の種類にあります。

get "users/new"を使用すると、ルートはHTTP GET要求にのみ一致します。

match "users/new"は、実際にはすべてのタイプのHTTPリクエストと一致します。

GET要求のみが期待される場合は、matchの代わりにを使用することができます。

関連する問題