Ruby on rails 如何正确定义rails应用程序的路由?

Ruby on rails 如何正确定义rails应用程序的路由?,ruby-on-rails,routes,Ruby On Rails,Routes,我遵循的是,首先config/routes.rb文件包含以下内容: SampleApp::Application.routes.draw do get "pages/home" get "pages/contact" get "pages/about" get "pages/help" ... 现在,在教程中,它声明它包含以下内容 SampleApp::Application.routes.draw do match '/contact', :to =>

我遵循的是,首先
config/routes.rb
文件包含以下内容:

SampleApp::Application.routes.draw do

  get "pages/home"

  get "pages/contact"

  get "pages/about"

  get "pages/help" 

...
现在,在教程中,它声明它包含以下内容

SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'
  .
  .
  .
end

我使用了上面的方法,但似乎不起作用。正确的路由定义是什么?

匹配和获取都是有效的路由定义。我建议使用get-through

get "/home" => "pages#home"
这将把uri/home路由到控制器页面,操作将返回主页。
但仅适用于GET请求

您可以这样做,例如:

post "/home" => "pages#create_home"
如果使用匹配:

match "/home" => "pages#home"
这将把uri/home路由到控制器页面,操作为home。但是对于所有的HTTP动词,不仅仅是GET


请看一下rails指南:

两者都正确有效。请通读以了解更多信息。也许,您正试图访问不再工作的
'/pages/contact'
,您只需通过
'/contact'
访问该页面