成员和收集路线是什么意思? 您所在的位置:网站首页 og成员是什么意思 成员和收集路线是什么意思?

成员和收集路线是什么意思?

2024-07-18 02:27| 来源: 网络整理| 查看: 265

问题描述 本文来自:IT宝库(https://www.itbaoku.cn)

阅读以下内容: .

添加"成员路由"是什么意思?

或在集合中添加路线?

谈论路线时的成员和集合是什么?

推荐答案

都是在铁轨中基于资源的路线中添加其他操作的方法.

成员路由需要ID,因为它作用于会员. 收集路线不需要ID,因为它作用于对象集合.

我喜欢从静止的URL中考虑它们.考虑资源/模型Foo

的基础知识 GET /foo # FooController#index GET /foo/:id # FooController#show GET /foo/new # FooController#new POST /foo # FooController#create GET /foo/:id/edit # FooController#edit PUT /foo/:id # FooController#update DELETE /foo/:id # FooController#destroy

注意:

有些路线有:foo.id的ID占位符,因此请参阅特定 foo 有些路线没有:ID,因此请参考 all foos(和/或没有特定的foo,如#New和#create) 一些路由(索引/创建,显示/更新/破坏)具有相同的URL,并使用HTTP方法区分 某些路线(编辑/显示)基本上是相同的(方法和URL前缀),但最后一个后缀(包括"否后缀").

成员路由和集合路由让您使用与我上面列出的相同技术添加其他路线/操作.

使用您提供的URL后缀和HTTP方法,成员路由将自定义操作添加到A 特定实例.因此,如果您有会员路线声明:member => { :bar => :get }.您将获得一条额外的路线:

GET /foo/:id/bar # FooController#bar

以与"编辑"相同的方式,请注意它的超载GET /foo/:id.这就是您实现"删除"操作的方式,该操作为"销毁"动作提供了UI.

同样,集合路由将过载添加到 Collection 和/或非特定实例(由您决定确切决定其暗示的内容).因此,如果您声明:collection => { :baz => :get },您将获得一条额外的路线:

GET /foo/baz # FooController#baz

...以与new的方式相同.

您也可以自定义HTTP方法.

例如,我最近才有一个项目,我需要对Comment进行"回复"操作.它基本上与Comment#create(使用帖子)的想法相同,除了它是指特定的父Comment.因此,我创建了一个会员路由::member => { :reply => :post }.这给了我:

POST /comment/:id/reply # CommentController#reply

这可以使路线保持休息,同时仍在扩展基本的7个动作.

其他推荐答案

内置的成员路由为show,update,update和destroy,因为它们处理单个记录. index将是返回记录集合时的收集路线.

因此,这确实取决于您是否要使用单个记录(成员)或多个记录(Collection)进行操作.

URL帮助者反映了单数(成员)和复数(收集).例如:

这是一个成员:

person_path(@person)

这是一个集合:

people_path()

如果您定义了自定义集合路径,则可以在routes.rb中看起来像:

resources :people do member do put :make_manager end collection do get :show_managers end end

使某人成为一个经理:

make_manager_person_path(@person)

列出所有经理:

show_managers_people_path()

我认为,如果您使用不同的使用方式,我不会"关心",但这是导轨的方式.它将使您的代码易于阅读,其他编码器将使您更容易理解和维护您的代码.

本文地址:https://www.itbaoku.cn/post/2751206.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有