以MVC的思维方式来理解Ruby on Rails框架的设计结构

编程入门 行业动态 更新时间:2024-10-26 11:16:39
Ruby on Rails是Ruby世界中Web开发框架的代名词,人气相当之高,本文就带大家以MVC的思维方式来理解Ruby on Rails框架的设计结构,需要的朋友可以参考下

在rails中,发送一个请求(/users)的处理全过程如下: 1)、浏览器发送请求(/users) 2)、Rails的 routes会把请求路由给users_controller的index方法 3)、users_controller回调用User Model获取所有的user 4)、User Model会从数据库中把所有的user读取出来, 5)、User Model把从数据库读取出来的所有user封装为List返回给user_controller 6)、user_controlle把User Model返回user list赋值给实例变量@users,该变量会传递给index view 7)、index view接收传递过来的@users,并通过内嵌的ruby把view渲染为HTML 8)、user_controller把渲染好的页面返回给浏览器

不同的请求处理过程基本上一样,除了路由策略,即调用不一样的controller,或者controller的不同方法,具体的调用策略由Rails Router决定。

Rails Router Rails中的针对Resource的路由策略完全遵守REST的设计风格,即URL只是负责定位资源,对资源的操作通过原生的HTTP Method类型来决定,只需要在routes.rb中配置上resources :users,就可以得到如下的一系列路由策略:

HTTP request URI Action Purpose GET /users index page to list all users GET /users/1 show page to show user with id 1 GET /users/new new page to make a new user POST /users create create a new user GET /users/1/edit edit page to edit user with id 1 PUT /users/1 update update user with id 1 DELETE /users/1 destroy delete user with id 1

当然,除了REST风格的各种routes, Rails还支持各种定制的routes规则,方法如下:在routes.rb中加上语句

match 'user/create' => 'users#new', :via => :get

该规则匹配的是浏览器浏览/user/create,Rails会将请求路由到users_controller的new方法上,其他的处理都和/users/new一样。不过要注意的是,Rails会使用第一个匹配上的规则,如果我们把上面的那条route语句改为

match 'users/create' => 'users#new', :via => :get

,其就不会按我们设想的工作了,其会匹配到到规则

GET /users/1 show page to show user with id 1

, 即获取id为created的user。

  • 0
  • 0
  • 0
  • 0
  • 0

更多推荐

以MVC的思维方式来理解Ruby on Rails框架的设计结构

本文发布于:2023-06-11 17:30:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/639797.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:思维方式   框架   结构   MVC   Rails

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!