About Rails
Rails 是使用 Ruby 程式語言所開發出來的網站開發框架(Web Framework)
由 David Heinemeier Hansson(簡稱 DHH)所開發。
在 Rails 世界有兩個大重點:
慣例優於設定(Convention over Configuration, CoC)
所謂的慣例就是當遇到某種情況的時候我們會用特定的方式來解決問題。
順著 Rails 的慣例,程式碼可以變得更簡潔,在實作 CRUD 時,感受特別深!
在建立資料表的關連、單複數命名都跟 Rails 的慣例離不開,
所以在學習階段上也像是在學習 Rails 的慣例。不要做重複的事(Don’t Repeat Yourself, DRY)
如果有些程式碼一直重複的出現,就可以把重複的部份抓出來,整理成為一個方法、類別或模組。
這樣不僅可以重複使用,也會因此變得比較好維護,有發生問題也比較容易立即處理!
before_action :先備知識
在實作 CRUD 時,背後牽涉很多基本知識,現在就來看看這些有什麼吧!(⊃・ᴥ・)つ
REST
REST (Representational State Transfer) 是一種軟體架構風格,
主要用於設計網路應用程式的 API(幫助世界各地不同軟體、程式在網際網路中能夠互相傳遞訊息)
它基於資源(Resource)的概念,每個資源都有唯一的識別符號(URI),
並且可以透過不同的 HTTP 方法(GET、POST、PUT、DELETE 等)來執行相應的操作。
每個網頁都可視為一個資源提供使用者使用,而我們就可以透過 URL,也就是這些資源的地址,
來取得這些資源並在瀏覽器上使用。
Remark:
URI - Uniform Resource Identifier,
其中最常看見的 URL 是 URI 的一種特殊形式,兩者都是用來唯一識別資源的地址。
RESTful
RESTful 是符合 REST 設計原則的 API。當我們在設計 API 時,遵循 REST 的原則,特別是適當地使用 HTTP 方法、URI 和回應狀態碼,我們就可以稱這個 API 為 RESTful API。
Remark:
所謂的 API 是應用程式介面 (application programming interface),
網址也是一種應用程式的「介面」,故稱為 API。
RESTful 風格的網址設計強調從路由結構就能看出要對什麼資料、進行什麼操作。
Ruby on Rails 在設計上已經將 RESTful 的路由設定架構出來了。透過 Rails 的路徑設定,可以快速地建立符合 RESTful 概念的路由,並使應用程序遵循 RESTful 架構來處理資源的 CRUD 操作。
在之後 Viiisit Ruby on Rails - Route!
的篇章中,就能看的出來其中的設計理念了!
CRUD
CRUD 是 Create, Read, Update, Delete 四個字母的縮寫,中文是「增刪查改」;
這是一連串常見的動作行為,通常是為了針對某個特定資源所作出的舉動,如:建立資料、讀取資料等。
這四個行為最常見的用途是在使用 SQL 資料庫與網站的 API 埠口的時候。
相對應的 SQL 語法、HTTP 請求、REST 表現層狀態轉換
- | SQL | HTTP | REST 表現層狀態轉換 |
---|---|---|---|
Create 建立 | INSERT | PUT / POST | POST |
Read 讀取 | SELECT | GET | GET |
Update 更新 | UPDATE | PUT / POST / PATCH | PUT |
Delete 刪除 | DELETE | DELETE | DELETE |
Route, Controller, View, Model, Migration
基本了解 CRUD 是什麼之後,接著要開始學習在 Ruby on Rials 裡面,
Route, Controller, View, Model, Migration 各自扮演的角色是什麼!
在 CRUD 實作裡,最常接觸的就是 Route, Controller, View, Model, Migration,
以下分別解釋他們的作用:
Route 定義應用程式路徑,將特定的 URL 導向相應的
controller#action
。View 呈現資料和生成用戶界面,顯示資料給使用者,以及收集和顯示表單數據。
Controller 處理 route 請求,協調 model 與 view 之間的交互作用。
接收來自用戶的請求,檢索或修改資料,然後將資料傳遞給 view 進行呈現。Model 定義資料庫結構,包括表格和屬性,並提供對資料的存取和操作。
Migration 用於管理資料庫結構變更的工具,可以說是一個資料庫變更的紀錄檔。
Remark: Migration 在生成時會自動產生時間戳記,資料庫每執行一次 migration 都會有時間戳記產生,所以資料庫會知道我們執行過哪一個 migration。db:migrate 就是讓資料庫「執行還沒執行過的migration」,執行過的migration則會自動略過。
Image Source: (https://railsbook.tw/chapters/13-crud-part-1)
建立專案!
打開終端機,建立一個新的專案,透過下方指令:
1 | rails new `自定義名稱` |
接著進入到該專案資料夾:
1 | cd `自定義名稱` |
後續,我會以建立 Route 作為開端,一一介紹他們各自在 Ruby on Rails 的作用~!
參考資料:
➫ 為你自己學 Ruby on Rails(第二版)- 第一章 簡介及生態圈
➫ 為你自己學 Ruby on Rails
➫ 增刪查改
➫ TechBridge 技術共筆部落格