花了點時間,總算是把 Ruby 的一些觀念稍微的介紹了一下,
接下來換要進入Rails 的部分囉!
Rails 是一款用Ruby這個程式語言所編寫出來,開源Web的應用框架。
主要的設計理念是DRY(Don't Repeat Yourself)和
COC(Convention Over Configuration)。
這邊借用一下為你自己學Ruby on Rails的圖來說明:
可以看出,整個 Rails 的架構由四個部分組成:
Rails 裡的Routes 採用的是RESTful的風格,將網址 (URI)視為是一種resources。
一般我們會在Rails 專案裡的 config/routes.rb寫下類似這樣的東西:
# config/routes.rb
resources :products
然後, rails 就會自動幫你長出下面這些路徑
其中,Verb 指的是HTTP請求的方法,可分為:
有看到上面那張圖,最右邊有一排Controller#Action。
Rails透過URI和不同的Verb(HTTP請求方法),對應到8個不同的方法(Action)。
通常在檔案裡他會比較像是這樣:
# catrs_controller.rb
class CartsController < ApplicationController
end
Controller 檔名和檔案裡的類別名稱是相關的,像上面的例子:
檔名是: carts_controller
類別名稱是:CartsController
在Rails裡,是透過Model來對資料庫進行操作的,讓你可以簡單的功能上,可以不用寫SQL語法,就可以從資料庫取得資料。
# cat.rb
class Cat < ApplicationRecord
end
Model的名稱和資料表,這也遵循著Rails的慣例:
Model類別 | 檔案名稱 | 資料表 |
---|---|---|
Cat | cat.rb | cats |
Post | post.rb | posts |
在Rails裡View的存放位置也有個慣例:
舉例來說:跟 CatsController 相關的 View,就會放在 app/views/cats 裡。如果執行的是 CatsController 的 index Action,預設會去找 app/views/cats/index.html.erb 這個檔案。
檔案名最後面的 erb 是 Embedded Ruby 的縮寫;
意思是,你可在在裡面寫 Ruby的語法,
然後會再透過Ruby預設的ERB library,幫你編譯成HTML語法。
再看一次上面那張圖:
我們可以將他解釋成:
這就是,Routes 和 MVC的基本概念,有錯還請不吝指教。
鐵人賽,我們明天見!
參考資料:
為你自己學Ruby on Rails