为了更清楚地了解什么是"资源"在Ruby on Rails routes.rb文件中,我想在它下面写下它正在替换的确切代码。
当我运行rake路线时,我得到了这个:
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
有人可以帮助我填写下面的空白,以便我能更清楚地理解这一点:
resources 'users'
# get 'users' => 'users#index"
# post ...
# get ...
# get ...
# patch ...
# put ...
# delete ...
答案 0 :(得分:4)
等效代码可表示为:
get 'users', to: 'users#index'
post 'users', to: 'users#create'
get 'users/new', to: 'users#new', as: 'new_user'
get 'users/:id/edit', to: 'users#edit', as: 'edit_user'
get 'users/:id', to: 'users#show', as: 'user'
patch 'users/:id', to: 'users#update'
put 'users/:id', to: 'users#update'
delete 'users/:id', to: 'users#destroy'
答案 1 :(得分:2)
Brad werth
的答案就是你所需要的。
为了给你一些更多的上下文,你还需要了解resourceful routing system在Rails中是如何工作的......
资源路由允许您快速声明给定资源控制器的所有常用路由。而不是为
index
,show
,new
,edit
,create
,update
和destroy
操作声明单独的路线,资源丰富的路由在一行代码中声明它们。
基本上,每次你打电话给resources
时,你都会告诉我们为围绕“足智多谋”原则设计的控制器建立一套路线。
HTTP在客户端 - 服务器计算模型中用作请求 - 响应协议。例如,web浏览器可以是客户端,并且在托管网站的计算机上运行的应用程序可以是服务器。客户端向服务器提交HTTP请求消息。服务器提供资源(如HTML文件和其他内容),或代表客户端执行其他功能,向客户端返回响应消息。响应包含有关请求的完成状态信息,还可能在其消息正文中包含请求的内容。
当您了解Ruby / Rails是object orientated
时,所有这些都是有意义的。这意味着您在应用程序中执行的所有必须解决初始化问题。维护“对象”。
对象基本上是您的模型 - 使用您的控制器操作创建,编辑和销毁它们(CRUD -- create read update destroy)。因此,为了给您一组标准化路线,您将能够使用以下内容:
如果您希望查看brad
概述的路线,则需要运行rake routes
-
这里的资源很好:https://softwareengineering.stackexchange.com/questions/120716/difference-between-rest-and-crud