深入浅出说路由概论.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 Rails 路由的意义 Rails 路由能够识别 URL 并且将请求分发到对应的 控制器下的 action 中。 它也可以生成相对路径和 URL 来避免在你的视图中的硬编码(hardcode string). 1.1 链接 URL 和代码 当你的 Rails 应用接收到一个像这样的请求时 GET /patients/17它就会尝试着让路由去匹配字符串到一个控制器行为中。如果第一条路由规则是这样的: match /patients/:id = patients#show这个请求将会被分发到 patients 控制器下面的 show action 中去,同时 { :id = “17” } 将会存储在 params 中。 1.2 用代码生成 URL 和 路径 你同样可以用路由来生成 URl 和路径,如果你的应用包含了这样的代码: @patient = Patient.find(17)%= link_to Patient Record, patient_path(@patient) %路由将会自动生成一个路径 /patients/17 ,这将使你的代码更加简洁易懂而健壮。注意这里我们没必要将 id 传递给路由 Helper。 2 Resource 路由规则: Rails 之道 Resource 路由规则能让你迅速地构建出 resourceful 的控制器所需常用路由规则,它可以自动地为你生成 index, show, new, edit, create, update 和 destroy 行为,而一个 Resourceful 的路由声明只需要一行代码。 2.1 web 与 Resource 浏览器向 Rails 的一个页面发起请求 URL 的时候必须要指定一个 HTTP 请求方法,例如 GET, POST, PATCH, PUT and DELETE.这些方法将会对 Rails 中的资源进行不同的操作。而一个 Resource 的路由规则将会为一个控制器自动匹配多种相关方法。 例如,当你的 Rails 程序接收到了这样的请求: DELETE /photos/17它会向 路由请求匹配到一个控制器行为上,这里假设匹配上了我们路由上的这条规则 resources :photosRails 就将会把这个请求分发到 photos 控制器下的 destroy 方法下,并且把 { :id = “17” } 作为 params 的值. 2.2 CRUD, Verbs, Actions 对于 Rails 一个 Resourceful 的路由提供了一组 HTTP 和 控制器行为的对应关系。它还约定了与每个行为相对应的 CRUD 的数据库操作。例如这样的一个 简单的 路由记录: resources :photos将会在应用中生成七个不同的路由记录,他们都会匹配到 Photos 控制器上去。 HTTP Verb Path action used for GET /photos index display a list of all photos GET /photos/new new return an HTML form for creating a new photo POST /photos create create a new photo GET /photos/:id show display a specific photo GET /photos/:id/edit edit return an HTML form for editing a photo PATCH/PUT /photos/:id update update a specific photo DELETE /photos/:id destroy delete a specific photo Rails 路由的匹配是按照规则顺序匹配的,所以如果在你的路由规则中有一句 resources :photos,接着一句 get photos/poll, 这样的话 resources 定义的 show 这个行为会比 get 方法优先完成匹配。如果这样并非是你的本意,你只要将 get photos/poll 调到 resources 那行的前面就可以先行指定特别的匹配规则。 2.3 URL 和 Path 建立一个 Resourceful 的路由的同时也会为你的应用自动添加一系列的 Helper 方法。以上面的 resources :photos 路由规则为例: photos_path 会返回 /photos new_photo_path 返回 /photos/new edit_p

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档