Route
是整個網站對外公開的網站路徑對照表,當使用者連上網站的時候, Rails 會解析使用者所輸入的網址及參數,再根據解析的結果,去找到該負責處理的單位(哪個 Controller 跟 Action),簡單來說 Route 就是解讀使用者輸入的網址,然後轉去對應的地方,接著就交棒給 MVC (model view controller)
在 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 模型的操作。
方法有兩種如下:
http://localhost:3000/rails/info/routes
$ rails routes # 搜尋所有路徑
$ rails routes -c articles # 搜尋路徑中特定 Controller
REST 是 Representational State Transfer
的縮寫,中文翻譯成「具象狀態傳輸」, 它是由 Roy Thomas Fielding 博士在 2000 年時提出的軟體架構。簡單的說,就是把每個網址當做資源(Resource)來看待,對同一個資源做不同的動作(HTTP Verb)會得到不同的結果。符合 REST 概念設計的網址,又稱之 RESTFul Route。
RESTful 設計基於以下原則:
Create(新增)
:使用 POST 方法,通常在資源的集合 URI 上執行,如 /articles。Read(讀取)
:使用 GET 方法,可以在資源的集合 URI 或單一資源 URI 上執行,如 /articles 或 /articles/1。Update(更新)
:使用 PUT 或 PATCH 方法,通常在單一資源 URI 上執行,如 /articles/1。Delete(刪除)
:使用 DELETE 方法,通常在單一資源 URI 上執行,如 /articles/1。
後續的文章我們詳細介紹 CRUD 吧!
在 config/routes.rb
檔案中,你可以使用 Ruby 語法來定義 Route。最簡單的方式是使用 get、post、put、delete 等 HTTP 方法來定義 Route
顯示頁面或資源
get '/articles', to: 'articles#index'
創建新資源
post '/articles', to: 'articles#create'
更新現有資源
put '/articles/:id', to: 'articles#update'
刪除資源
delete '/articles/:id', to: 'articles#destroy'
Ruby on Rails 的 Route 系統是建立 Web 應用程式的關鍵之一。它負責將 HTTP 請求映射到適當的控制器動作,從而確定應該執行的代碼,同時遵循 RESTful 網址設計讓網址變得更直觀,使開發上更加的輕鬆。
參考資料:
Rails Guide - Routing
為你自己學 Ruby on Rails
Day 16 中場休息 預計介紹 Git 常用指令,我們明天見!