用户资源扩展

时间:2015-10-24 19:41:45

标签: ruby-on-rails routes railstutorial.org

为了更清楚地了解什么是"资源"在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 ...

2 个答案:

答案 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中是如何工作的......

  

资源路由允许您快速声明给定资源控制器的所有常用路由。而不是为indexshowneweditcreateupdatedestroy操作声明单独的路线,资源丰富的路由在一行代码中声明它们。

基本上,每次你打电话给resources时,你都会告诉我们为围绕“足智多谋”原则设计的控制器建立一套路线。

通过互联网的“资源丰富”行动由维基百科定义如下:

  

HTTP在客户端 - 服务器计算模型中用作请求 - 响应协议。例如,web浏览器可以是客户端,并且在托管网站的计算机上运行的应用程序可以是服务器。客户端向服务器提交HTTP请求消息。服务器提供资源(如HTML文件和其他内容),或代表客户端执行其他功能,向客户端返回响应消息。响应包含有关请求的完成状态信息,还可能在其消息正文中包含请求的内容。

当您了解Ruby / Rails是object orientated时,所有这些都是有意义的。这意味着您在应用程序中执行的所有必须解决初始化问题。维护“对象”。

对象基本上是您的模型 - 使用您的控制器操作创建,编辑和销毁它们(CRUD -- create read update destroy)。因此,为了给您一组标准化路线,您将能够使用以下内容:

enter image description here

如果您希望查看brad概述的路线,则需要运行rake routes

-

这里的资源很好:https://softwareengineering.stackexchange.com/questions/120716/difference-between-rest-and-crud