我熟悉Ruby On Rails的路由系统,以及Code Igniter和PhpCake的路由方式,但是除了拥有一个基于目录结构的路由的集中位置之外,还有更多内容吗?喜欢这个
controller/action/id/
Admin/editUser/22
答案 0 :(得分:20)
基本前提是,不是仅依靠URL来指示您想要访问的网页(并且仅使用一种方法),而是VERB和URL的组合。
这样,当使用不同的动词(例如GET,PUT,POST,DELETE)时,相同的URL将转到另一个页面。这样可以实现更清晰,更短的URL,并且特别适用于大多数Web应用程序所使用的CRUD应用程序。
答案 1 :(得分:14)
RESTful Rails路由,我认为这显示了REST的原理
/users/ method="GET" # :controller => 'users', :action => 'index'
/users/1 method="GET" # :controller => 'users', :action => 'show'
/users/new method="GET" # :controller => 'users', :action => 'new'
/users/ method="POST" # :controller => 'users', :action => 'create'
/users/1/edit method="GET" # :controller => 'users', :action => 'edit'
/users/1 method="PUT" # :controller => 'users', :action => 'update'
/users/1 method="DELETE" # :controller => 'users', :action => 'destroy'
答案 2 :(得分:2)
整个安静的事情的一个重要部分是你应该使用不同的HTTP方法来表示不同的动作。
例如在Rails中,如果您要向HTTP Delete
发送/users/[id]
,则表示您要删除该用户。 HTTP Get
将检索用户的适当表示。 HTTP Put
可以更新或创建用户。
这些是一些示例,但由于HTTP中没有RESTful API的标准,因此在所有情况下都不正确。
答案 3 :(得分:1)
它将HTTP VERBS + URL映射到控制器中的特定操作
示例:
GET /users/1
转到:
:controller => 'users', :action => 'show'
要查看完整映射,请转到终端,然后键入:
rake routes
答案 4 :(得分:0)
@edtsech是对的。我想在这里补充一点。
在更新的情况下,该方法是“POST”,其中包含需要更新的数据的隐藏字段。
所以PUT = POST +隐藏字段。