iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Software Development

新手村的練功筆記系列 第 8

Day 8 Routes (帶位小弟) & MVC 架構

  • 分享至 

  • xImage
  •  

Routes (帶位小弟)

昨天提到我們修改完Hello world!!! 的頁面了
那麼我們該如何看到我們所修改的頁面呢?

我們先觀察一下我們所修改頁面的路徑
app/views/hello/index.html.erb

我們可以看到這個頁面在hello的路徑下
還記得我們前面執行的指令嗎?

rails g controller Hello index
我們產生了一個名為Hello的controller

因此若我們想要看到該頁面
我們就需要一個幫忙帶位的人
這個人需要知道當使用者有不同的需求時,要把人帶到哪裡去

在rails中,routes就是扮演這個角色的人
routes中會紀錄不同的連入網址要對應到哪個頁面

因此我們編輯config目錄下的routes.rb檔案
vim config/routes.rb

  Rails.application.routes.draw do
    get 'hello/index'
    root 'hello#index' //新增這行
  end

root 'hello#index'
加入這行指令代表我們將首頁(root)網址來的請求,顯示hello目錄下的index頁面給他

這時重整網頁就可以看到我們修改完成了

ps 因為想修改一個吉祥數字的port號
或是預設的port 3000有與其他服務衝突時
可以使用以下的指令啟動rails server (8888 為 自訂的port)
rails server -p 8888

到這裡,我們就修改成功啦

MVC 架構

相信初學者在剛接觸rails時應該常會聽到MVC架構
那麼什麼是MVC呢

其實MVC分別是三個單字的縮寫
M => Model
V => View
C => Controller

相信這樣對新手來說有解釋跟沒解釋一樣 /images/emoticon/emoticon19.gif

那就讓我們來說個故事吧XD

苦主小明是一位剛接手公司陳年專案的菜鳥工程師
現在他接到老闆交付的3個新的任務
老闆要他修改一個頁面的樣示風格,修改商品打折的條件 ; 以及使用者若是VIP會員,則會將使用者頁面轉到VIP會員商品頁面

但是對於剛到職的小明來說公司的網站頁面龐大
一時之間小明不知該如何下手

好在公司的網站是採用MVC架構製作的
因此小明知道跟畫面呈現相關的大致可以在Views的資料夾下找到
商品的折扣條件等涉及商業邏輯的運作可以在Model下進行修改
如果使用者是VIP就顯示特殊的頁面,有關於流程(flow)的處理則可以在controller中找到

MVC架構的好處是能將頁面依功能進行分類,方便後續維護
隨著後續的實作,會慢慢體會MVC架構帶來的好處
剩下的我們明天繼續吧~

參考資料:
https://tw.alphacamp.co/blog/mvc-model-view-controller
https://railsbook.tw/chapters/10-mvc


上一篇
Day 7 Hello world !!!
下一篇
Day 9 路徑規劃
系列文
新手村的練功筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言