最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

以MVC的思維方式來(lái)理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu)

 更新時(shí)間:2016年05月27日 18:55:38   作者:ningandjin  
Ruby on Rails是Ruby世界中Web開(kāi)發(fā)框架的代名詞,人氣相當(dāng)之高,本文就帶大家以MVC的思維方式來(lái)理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu),需要的朋友可以參考下

在rails中,發(fā)送一個(gè)請(qǐng)求(/users)的處理全過(guò)程如下:
1)、瀏覽器發(fā)送請(qǐng)求(/users)
2)、Rails的 routes會(huì)把請(qǐng)求路由給users_controller的index方法
3)、users_controller回調(diào)用User Model獲取所有的user
4)、User Model會(huì)從數(shù)據(jù)庫(kù)中把所有的user讀取出來(lái),
5)、User Model把從數(shù)據(jù)庫(kù)讀取出來(lái)的所有user封裝為L(zhǎng)ist返回給user_controller
6)、user_controlle把User Model返回user list賦值給實(shí)例變量@users,該變量會(huì)傳遞給index view
7)、index view接收傳遞過(guò)來(lái)的@users,并通過(guò)內(nèi)嵌的ruby把view渲染為HTML
8)、user_controller把渲染好的頁(yè)面返回給瀏覽器

不同的請(qǐng)求處理過(guò)程基本上一樣,除了路由策略,即調(diào)用不一樣的controller,或者controller的不同方法,具體的調(diào)用策略由Rails Router決定。

Rails Router
Rails中的針對(duì)Resource的路由策略完全遵守REST的設(shè)計(jì)風(fēng)格,即URL只是負(fù)責(zé)定位資源,對(duì)資源的操作通過(guò)原生的HTTP Method類型來(lái)決定,只需要在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 

當(dāng)然,除了REST風(fēng)格的各種routes, Rails還支持各種定制的routes規(guī)則,方法如下:在routes.rb中加上語(yǔ)句

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

 
該規(guī)則匹配的是瀏覽器瀏覽/user/create,Rails會(huì)將請(qǐng)求路由到users_controller的new方法上,其他的處理都和/users/new一樣。不過(guò)要注意的是,Rails會(huì)使用第一個(gè)匹配上的規(guī)則,如果我們把上面的那條route語(yǔ)句改為

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

,其就不會(huì)按我們?cè)O(shè)想的工作了,其會(huì)匹配到到規(guī)則

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


即獲取id為created的user。

相關(guān)文章

  • ruby元編程之創(chuàng)建自己的動(dòng)態(tài)方法

    ruby元編程之創(chuàng)建自己的動(dòng)態(tài)方法

    這篇文章主要介紹了ruby元編程之創(chuàng)建自己的動(dòng)態(tài)方法,本文講解使用method_missing和respond_to?創(chuàng)建自己的動(dòng)態(tài)方法,需要的朋友可以參考下
    2015-05-05
  • Ruby實(shí)現(xiàn)網(wǎng)頁(yè)圖片抓取

    Ruby實(shí)現(xiàn)網(wǎng)頁(yè)圖片抓取

    本文給大家分享的是個(gè)人使用ruby編寫(xiě)的抓取網(wǎng)頁(yè)圖片的代碼,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2016-04-04
  • Ruby元編程之夢(mèng)中情人method_missing方法詳解

    Ruby元編程之夢(mèng)中情人method_missing方法詳解

    這篇文章主要介紹了Ruby元編程之夢(mèng)中情人method_missing方法詳解,本文講解了我該怎么用 method_missing 、方法代理、define_method、什么時(shí)候用 method_missing、元方法等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Ruby語(yǔ)法筆記

    Ruby語(yǔ)法筆記

    本文給大家記錄的是本人學(xué)習(xí)ruby之后所記錄下來(lái)的部分語(yǔ)法知識(shí),分享給有需要的小伙伴,希望對(duì)大家能夠有所幫助。
    2016-02-02
  • Ruby中任務(wù)構(gòu)建工具rake的入門學(xué)習(xí)教程

    Ruby中任務(wù)構(gòu)建工具rake的入門學(xué)習(xí)教程

    這篇文章主要介紹了Ruby中任務(wù)構(gòu)建工具rake的入門學(xué)習(xí)教程,講解了包括命名空間和默認(rèn)任務(wù)的執(zhí)行等基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-03-03
  • web 應(yīng)用中常用的各種 cache詳解

    web 應(yīng)用中常用的各種 cache詳解

    cache是提高應(yīng)用性能重要的一個(gè)環(huán)節(jié),寫(xiě)篇文章總結(jié)一下用過(guò)的各種對(duì)于動(dòng)態(tài)內(nèi)容的cache。
    2014-06-06
  • Ruby包管理器gem常用命令

    Ruby包管理器gem常用命令

    這篇文章主要介紹了Ruby包管理器gem常用命令,本文講解了獲取幫助、查詢可用包、安裝軟件、查詢已安裝軟件、卸載軟件等常用命令,需要的朋友可以參考下
    2015-04-04
  • Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南

    Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南

    Rails項(xiàng)目通過(guò)Ruby世界中的gem和rake工具來(lái)構(gòu)建起來(lái)真的相當(dāng)方便,這里就給大家整理了一份Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南,需要的朋友可以參考下
    2016-06-06
  • Ruby語(yǔ)言中的String深入理解

    Ruby語(yǔ)言中的String深入理解

    在java中,對(duì)于字面量的字符串,jvm內(nèi)部維持一張表,因此如果在java中,str1和str2是同一個(gè)String對(duì)象。而在Ruby中, str1和str2是完全不同的對(duì)象。
    2011-01-01
  • Ruby簡(jiǎn)潔學(xué)習(xí)筆記(二):類繼承、屬性、類變量

    Ruby簡(jiǎn)潔學(xué)習(xí)筆記(二):類繼承、屬性、類變量

    這篇文章主要介紹了Ruby簡(jiǎn)潔學(xué)習(xí)筆記(二):類繼承、屬性、類變量,本文是個(gè)人學(xué)習(xí)總結(jié)第二篇,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

武义县| 秭归县| 台北市| 渭南市| 玉田县| 健康| 改则县| 会泽县| 玉屏| 浏阳市| 鸡东县| 泸西县| 安化县| 沙田区| 瓦房店市| 麦盖提县| 兴隆县| 资阳市| 延川县| 亳州市| 潜江市| 麻江县| 施甸县| 伊宁市| 天水市| 河南省| 淮安市| 桃江县| 平邑县| 威信县| 子长县| 卢氏县| 翼城县| 延安市| 宜昌市| 景德镇市| 高州市| 准格尔旗| 宝清县| 临沧市| 曲阳县|