Hartl书的第5章为什么路由需要get()for user.new?

时间:2011-09-23 17:25:38

标签: ruby-on-rails rest routing

围绕Hartl rails教程5.29(http://ruby.railstutorial.org/)列出了一个路由错误的讨论,它强迫你在users / 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 个答案:

答案 0 :(得分:1)

不同之处在于路由匹配的HTTP请求类型。

通过使用get "users/new",路由将仅匹配HTTP GET请求。

match "users/new"实际上会匹配所有类型的HTTP请求。

如果你只想要GET请求,那么你可以使用get而不是match作为其他路线。(似乎是这种情况)。