国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

以MVC的思維方式來理解Ruby on Rails框架的設計結構

2019-10-26 19:29:22
字體:
來源:轉載
供稿:網友

在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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广饶县| 大余县| 聂荣县| 贵州省| 武城县| 双鸭山市| 鄂尔多斯市| 北流市| 衡水市| 双流县| 广元市| 宜阳县| 苍南县| 女性| 恩施市| 兴和县| 通州市| 龙里县| 轮台县| 丰城市| 铜梁县| 阳泉市| 海丰县| 安塞县| 皋兰县| 乌拉特后旗| 土默特右旗| 平潭县| 新兴县| 饶平县| 新民市| 扎鲁特旗| 新营市| 闵行区| 华池县| 清苑县| 教育| 武功县| 海林市| 福鼎市| 锡林浩特市|