`

Rails的MVC和路由策略

 
阅读更多
MVC In 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。
  • 大小: 50.2 KB
分享到:
评论

相关推荐

    Ruby on Rails中MVC结构的数据传递解析

    总之,Ruby on Rails的MVC架构通过明确的数据传递流程和约定,为Web开发人员提供了一种快速、高效且易于维护的开发模式。开发者可以更加专注于业务逻辑的实现,而无需过多担心底层的数据传递和架构细节。

    Ruby on Rails.rar+MVC+RESTfule+Rails等系列教程

    Ruby基础语法 Rails框架入门 MVC架构理解 数据库设计与迁移 ActiveRecord模型操作 Rails中的控制器编写 ...路由系统详解 RESTful设计原则 Rails中的表单处理 Rails与JavaScript集成 ...Rails性能优化与缓存策略

    Rails项目源代码

    `config/routes.rb`文件定义了所有路由规则,包括资源路由、命名路由和自定义路由。 6. **视图模板**: 视图使用ERB(Embedded Ruby)或更现代的Haml、Slim等模板语言,结合HTML来渲染用户界面。图片的展示、上传...

    Ruby on Rails实践

    总的来说,Ruby on Rails实践涉及的知识点包括但不限于:Ruby语言基础、Rails框架结构、MVC模式、ActiveRecord、路由、测试驱动开发、插件和gem使用、以及部署策略。通过学习和实践,开发者能够快速构建功能丰富的...

    ruby on rails 2.3.5 api html版

    Rails是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提高开发效率和代码的可读性。 在这个API文档中,你可以找到关于以下关键知识点的详细信息: 1. **Ruby语法基础**:...

    rails2-sample

    这一部分将覆盖一些高级的Rails主题,如性能优化、多线程和并发处理、部署策略等。对于想要深入了解Rails框架并构建高性能Web应用的开发者来说,这些知识是必不可少的。 #### 10. Rails Plugins(Rails插件) ...

    Rails101_by_rails4.0

    Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...

    Rails

    5. **路由**:Rails的路由系统将URL映射到控制器的行动上,提供了一种灵活的方式来定义和管理应用的路由结构。 描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含...

    rails敏捷开发的购物车系统

    Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-控制器)架构和“约定优于配置”的原则而闻名。 首先,让我们了解Rails的MVC架构。模型(Model)负责处理业务逻辑和数据...

    Advanced Rails

    2. **复杂的路由**:Rails的路由系统允许灵活地定义资源和URL结构。高级Rails会讲解如何创建更复杂的路由规则,如命名空间、嵌套资源和条件路由。 3. **ActiveRecord高级用法**:ActiveRecord是Rails的ORM(对象...

    Rails 3 in Action

    4. **路由**:Rails的路由系统允许灵活地定义URL到控制器动作的映射,书中介绍了如何设置资源路由、命名路由和自定义路由规则。 5. **ActiveRecord**:详述了ActiveRecord是如何作为对象关系映射(ORM)层工作的,...

    Ruby on Rails源代码

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。Rails的哲学强调“约定优于配置”和“Don't Repeat Yourself”(DRY...

    rails指南 中文版

    Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,强调“约定优于配置”(Conventions over Configuration)和“Don't Repeat Yourself”(DRY,不要...

    Rails相关电子书汇总

    通过阅读"rubyonrails21-cn.pdf"这本书,读者可以学习如何搭建Rails环境,理解MVC架构,学习数据库设计,掌握路由规则,编写控制器和视图,进行测试,以及了解如何部署Rails应用。此外,书中可能还涵盖了Rails的安全...

    rails-api-4.0.0

    Ruby on Rails是由David Heinemeier Hansson创建的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式,以其简洁、高效的代码和“约定优于配置”的哲学而闻名。在Rails 4.0.0中,引入了专门针对API开发的Rails ...

    rails学习教程

    Rails,全称Ruby on Rails,是一款基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程并提高开发效率。本教程将带你走进Rails的世界,从零开始学习这个强大的框架...

    关于Rails登录和验证插件http_authentication restful-authentication

    Rails是一个流行的Ruby编程语言的Web应用框架,以其MVC(模型-视图-控制器)架构模式和DRY(Don't Repeat Yourself)原则而闻名。在Rails应用中,用户认证和授权是常见的需求,用于保护应用资源的安全。...

    中文版rails教程

    3. **路由(Routing)**:Rails的路由系统根据URL映射到特定的控制器和动作,定义了应用的导航结构。 4. **测试驱动开发(Test-Driven Development, TDD)**:Rails鼓励使用TDD,提供了Rspec和Capybara等强大的测试...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

Global site tag (gtag.js) - Google Analytics