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

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

熱門標(biāo)簽:滴滴外呼系統(tǒng) 地圖標(biāo)注賺錢項(xiàng)目注冊(cè) 湖州u友防封電銷卡 常德電銷平臺(tái)外呼系統(tǒng)軟件價(jià)格 電銷機(jī)器人廠商代理 白銀外呼paas系統(tǒng) 百度地圖標(biāo)注自定義圖片 徐州網(wǎng)絡(luò)外呼系統(tǒng)哪個(gè)好 高德地圖標(biāo)注客服

在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ù)庫中把所有的user讀取出來,
5)、User Model把從數(shù)據(jù)庫讀取出來的所有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把渲染好的頁面返回給瀏覽器

不同的請(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。

您可能感興趣的文章:
  • Ruby rails 頁面跳轉(zhuǎn)(render和redirect_to)
  • Rails link_to 詳解
  • rails常用數(shù)據(jù)庫查詢操作、方法淺析
  • 學(xué)習(xí)Ruby你需要了解的相關(guān)知識(shí)(rvm, gem, bundle, rake, rails等)
  • Windows下Ruby on Rails開發(fā)環(huán)境安裝配置圖文教程
  • rails "No route matches" 錯(cuò)誤的解決方法
  • ruby on rails 代碼技巧
  • 攻克CakePHP(PHP中的Ruby On Rails框架)圖文介紹
  • rails 連接mysql的問題解決
  • 在阿里云 (aliyun) 服務(wù)器上搭建Ruby On Rails環(huán)境
  • CentOS中配置Ruby on Rails環(huán)境
  • win7安裝ruby on rails開發(fā)環(huán)境

標(biāo)簽:荊門 永州 普洱 三沙 遼寧 張家界 梧州 公主嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《以MVC的思維方式來理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu)》,本文關(guān)鍵詞  以,MVC,的,思維方式,來,理解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《以MVC的思維方式來理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu)》相關(guān)的同類信息!
  • 本頁收集關(guān)于以MVC的思維方式來理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章