2011-09-23 63 views
1

圍繞着哈爾路軌教程(http://ruby.railstutorial.org/)中列出的5.29,我們討論了一個路由錯誤的問題,它迫使你在用戶/新方法上調用get方法,而不僅僅是匹配方法。稍後通過調用下一章中的資源方法進行糾正。Hartl書第5章爲什麼路由需要get()for user.new?

我的一般問題是爲什麼我們不必在下面的清單中的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請求(似乎是這種情況),您可以使用get而不是match作爲其他路由。