iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

什麼是Route路徑?

Route 是整個網站對外公開的網站路徑對照表,當使用者連上網站的時候, Rails 會解析使用者所輸入的網址及參數,再根據解析的結果,去找到該負責處理的單位(哪個 Controller 跟 Action),簡單來說 Route 就是解讀使用者輸入的網址,然後轉去對應的地方,接著就交棒給 MVC (model view controller)

Route 在哪呢?

在 Rails 中,Route 的配置主要是在應用程式的 config/routes.rb 檔案中進行的,包含了 Route 定義的Ruby 程式碼,你可以在其中設定 Route 規則:

# config/routes.rb
Rails.application.routes.draw do
  get 'welcome/index'
  resources :posts
end

這邊使用 get 方法設定了一個Route,它將 /welcome/index 映射到 WelcomeController 的 index 動作。同時,我們使用 resources 方法生成了一組標準的 CRUD(Create、Read、Update、Delete)路由,用於處理 Post 模型的操作。

查看 Route

方法有兩種如下:

  1. 專案的網址上打 http://localhost:3000/rails/info/routes
  2. 利用終端機輸入以下指令
$ rails routes # 搜尋所有路徑

$ rails routes -c articles # 搜尋路徑中特定 Controller

RESTful 網址設計

REST 是 Representational State Transfer 的縮寫,中文翻譯成「具象狀態傳輸」, 它是由 Roy Thomas Fielding 博士在 2000 年時提出的軟體架構。簡單的說,就是把每個網址當做資源(Resource)來看待,對同一個資源做不同的動作(HTTP Verb)會得到不同的結果。符合 REST 概念設計的網址,又稱之 RESTFul Route。

RESTful 設計基於以下原則:

  1. 資源 (Resources):在 RESTful 設計中,一切都是資源。資源可以是任何你的應用程式需要暴露的實體,如文章、用戶、產品等
  2. HTTP 方法:RESTful 設計使用 HTTP 方法(GET、POST、PUT、PATCH、DELETE 等)來表示對資源的操作。每個 HTTP 方法對應於一個特定的資源操作。
  3. URI 結構:URI(Uniform Resource Identifier)結構應該清晰,反映出資源之間的階層結構和關係。
  4. CRUD 操作:RESTful 設計通常包括 CRUD(Create、Read、Update、Delete)操作,這些操作與 HTTP 方法對應如下:

Create(新增):使用 POST 方法,通常在資源的集合 URI 上執行,如 /articles。
Read(讀取):使用 GET 方法,可以在資源的集合 URI 或單一資源 URI 上執行,如 /articles 或 /articles/1。
Update(更新):使用 PUT 或 PATCH 方法,通常在單一資源 URI 上執行,如 /articles/1。
Delete(刪除):使用 DELETE 方法,通常在單一資源 URI 上執行,如 /articles/1。

後續的文章我們詳細介紹 CRUD 吧!

定義 Route

config/routes.rb 檔案中,你可以使用 Ruby 語法來定義 Route。最簡單的方式是使用 get、post、put、delete 等 HTTP 方法來定義 Route

GET

顯示頁面或資源

get '/articles', to: 'articles#index'

POST

創建新資源

post '/articles', to: 'articles#create'

PUT/PATCH

更新現有資源

put '/articles/:id', to: 'articles#update'

DELETE

刪除資源

delete '/articles/:id', to: 'articles#destroy'

總結

Ruby on Rails 的 Route 系統是建立 Web 應用程式的關鍵之一。它負責將 HTTP 請求映射到適當的控制器動作,從而確定應該執行的代碼,同時遵循 RESTful 網址設計讓網址變得更直觀,使開發上更加的輕鬆。

參考資料:
Rails Guide - Routing
為你自己學 Ruby on Rails

預告

Day 16 中場休息 預計介紹 Git 常用指令,我們明天見!


上一篇
Day 14 - Ruby on Rails 簡介
下一篇
Day 16 - Git 常用指令(一)
系列文
Zero to Ruby on Rails30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言