区分休息路线和非宁静路线

时间:2015-07-03 10:47:40

标签: ruby-on-rails rest routes

据我所知,restful路由是基于REST架构的路由。并且rails默认使用restful路由。 resource关键字为我们定义了七条宁静路线。如果我必须定义自定义路线,

resource :photos do
 memeber do
  get 'preview' #non-restful route
 end
end

现在preview路由被定义为非宁静路由。它不是RESTful路线吗?

我的问题是,我们如何区分RESTful路由和非RESTful路由?你能给出一个自定义的宁静路线和非宁静路线的例子。

2 个答案:

答案 0 :(得分:2)

定义Restful Web服务没有严格的规则,尽管Rails为您提供了一个名为resources的方法来生成Restful Web服务。但这取决于场景。

您可以查看there is no algorithm that runs better than that, in terms of asymptotic notation。它深入描述了请求如何属于Restful请求的类别。

答案 1 :(得分:0)

在许多应用程序中,您还会看到非RESTful路由,它明确地将URL的各个部分连接到特定操作。例如,

map.connect 'parts/:number', :controller => 'inventory', :action => 'show'

另一方面,当您在应用程序resources中指定路由时使用resourceroute.rb时,您将获得RESTful URL,例如:

map.resources :photos

将产生:

Verb     URL          controller    action  used for
GET      /photos        Photos      index   display a list of all photos
GET      /photos/new    Photos      new     return an HTML form for creating a new photo
POST     /photos        Photos      create  create a new photo
GET      /photos/1      Photos      show    display a specific photo
GET      /photos/1/edit Photos      edit    return an HTML form for editing a photo
PUT      /photos/1      Photos      update  update a specific photo
DELETE   /photos/1      Photos      destroy delete a specific photo

来源:Ruby on rails - Routing