• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    以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。

    您可能感兴趣的文章:
    • Ruby rails 页面跳转(render和redirect_to)
    • Rails link_to 详解
    • rails常用数据库查询操作、方法浅析
    • 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
    • Windows下Ruby on Rails开发环境安装配置图文教程
    • rails "No route matches" 错误的解决方法
    • ruby on rails 代码技巧
    • 攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍
    • rails 连接mysql的问题解决
    • 在阿里云 (aliyun) 服务器上搭建Ruby On Rails环境
    • CentOS中配置Ruby on Rails环境
    • win7安装ruby on rails开发环境
    上一篇:Monkey Patch猴子补丁编程方式及其在Ruby中的运用
    下一篇:冒泡排序算法及Ruby版的简单实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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