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

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

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

在rails中,發(fā)送一個(gè)請(qǐng)求(/users)的處理全過程如下:
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讀取出來,
5)、User Model把從數(shù)據(jù)庫(kù)讀取出來的所有user封裝為L(zhǎng)ist返回給user_controller
6)、user_controlle把User Model返回user list賦值給實(shí)例變量@users,該變量會(huì)傳遞給index view
7)、index view接收傳遞過來的@users,并通過內(nèi)嵌的ruby把view渲染為HTML
8)、user_controller把渲染好的頁(yè)面返回給瀏覽器

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

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

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

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

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

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編寫的抓取網(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語法筆記

    Ruby語法筆記

    本文給大家記錄的是本人學(xué)習(xí)ruby之后所記錄下來的部分語法知識(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é),寫篇文章總結(jié)一下用過的各種對(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)目通過Ruby世界中的gem和rake工具來構(gòu)建起來真的相當(dāng)方便,這里就給大家整理了一份Ruby on Rails網(wǎng)站項(xiàng)目構(gòu)建簡(jiǎn)單指南,需要的朋友可以參考下
    2016-06-06
  • Ruby語言中的String深入理解

    Ruby語言中的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)論

绥中县| 蒲城县| 洪洞县| 邳州市| 库车县| 梅州市| 科技| 平陆县| 郴州市| 理塘县| 彭山县| 巴楚县| 甘肃省| 务川| 诸暨市| 永丰县| 天柱县| 冕宁县| 罗山县| 阿鲁科尔沁旗| 娄底市| 社旗县| 闽清县| 海淀区| 衡南县| 新和县| 顺义区| 磐安县| 祁阳县| 申扎县| 延边| 宝应县| 临安市| 县级市| 乌拉特前旗| 扎囊县| 新乐市| 苗栗县| 芦溪县| 兴仁县| 岑巩县|