iT邦幫忙

2022 iThome 鐵人賽

DAY 18
1
Modern Web

Ruby新手村的礦工日記系列 第 18

[ Day 18 ] Rails : MVC是什麼?

  • 分享至 

  • xImage
  •  

講完基本的 Ruby 之後,接下來我們就必須拿著 Ruby 去勇闖礦坑 (Rails) !
稍微簡介一下 Rails ,之後我們就必須在這裡面一直工作了!
這兩者的區別在於,Ruby 是程式語言,Rails 是運用 Ruby 撰寫的「網頁開發框架」。
通常大家都直接用 Ruby on Rails 或 RoR 來稱呼。
記住 Ruby on Rails 不是程式語言!!!

那進入 Rails 前,你必須先記熟 Rails 的地圖,也就是 MVC

什麼是 MVC ?

MVC 是軟體工程中的一種軟體架構模式,他讓開發的過程中更明確的區分「邏輯處理」與「資料呈現」,明確的區分各元件的功能,提高系統的擴充性、可用性。另外,導入 MVC 更容易進行分工,團隊成員可以在各自負責的部份進行開發,不會互相衝突或干擾。
而 MVC 是三個字的縮寫,分別是:
M : Model
V : View
C : Controller

那 MVC 的基本路線大致上長這樣:
MVC

Rails 裡的 R + MVC

Rails 跟一般的 MVC 不一樣,他很貼心的幫你準備了一個引導人員 (Route),他會指引你到正確的地方。
所以行走路線會長這樣:
RMVC
讓我們看圖說故事一下:

  1. 首先你會先到 Route 問一下你要去哪裡,她會告訴你要去哪一層 Controller 。
  2. 順著她跟你說的指示,你會找到相對應的 Action 。
  3. 接著你會在 Controller 裡面找到你要的 Action,但通常在 Controller 上通常會有一個以上的 Action。
  4. 有些 Action 可能會需要查「目前所有的礦脈」,接著它就會去請 Model 幫忙查資料。
  5. Model 本身不是資料庫,它會把你跟 Model 說的話轉成資料庫 (database) 看得懂的資料庫查詢語言(Structured Query Language,簡稱 SQL)。
  6. 透過 SQL,Model 可以跟資料庫取得你想要的資料。
  7. Model 把這包資料交回 Controller/Action 手上。
  8. 雖然 Controller/Action 拿到資料了,但這些資料還沒整理過,還不適合給使用者看,所以 Controller/Action 還需要跟 View 借一下畫面,讓資料更適合使用者閱讀。
  9. Controller/Action 把資料跟 View 的畫面組合,最後呈現給使用者看。

參考資料:

  1. 為你自己學 Ruby on Rails
  2. 維基百科 - MVC

上一篇
[ Day 17 ] Ruby 中的模組 (Module)
下一篇
[ Day 19 ] Rails : 迷路了?先問問 Route 吧!(上)
系列文
Ruby新手村的礦工日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言