Ruby on Rails 網站程式設計基礎班

LESSON 5

Homework2

Quiz2

Welcome to Ruby on Rails!

Your First Rails App

$rails new my_app_name

Bundle Install

$rails new my_app_name

Rails 運作流程

Rails 運作流程

  1. 瀏覽器發出HTTP request請求給Rails
  2. 路由(Routing)根據規則決定派往哪一個Controller的Action
  3. 負責處理的Controller Action操作Model資料
  4. Model存取資料庫或資料處理
  5. Controller Action將得到的資料餵給View樣板
  6. 回傳最後的HTML成品給瀏覽器

database.yml

  • 這個網站 / app 是如何和資料庫連結的

Gemfile

  • 顯示這個網站需要的 gem

routes.rb

  • http verb, url, parameters etc.
  • 定義整個網站的路由
  • 顯示你的網站支援的功能

 

MVC 架構

Model - 處理商業邏輯的地方

View - 顯示使用者介面

Controller - 處理外界送入的 http request,和 Model 互動,取得資料後輸出 View

CRUD 

我們對資料最基本的四種操作方式:

 

Create - 新增

Read - 讀取

Update - 更新

Delete- 刪除

 

RESTful

  • 路由設計方式
  • 幫助我們用一種比較標準化的方式來命名跟組織ControllersActions

RESTful

  • /events/create

  • /events/show/1

  • /events/update/1

  • /events/destroy/1

Rails 把路由從這樣:

  • POST /events對應到Controller中的create action

  • GET /events/1對應到Controller中的show action

  • PATCH /events/1對應到Controller中的update action

  • DELETE /events/1對應到Controller中的destroy action

解讀成這樣:

HTTP

HTTP通訊協定中制定了九種動詞(Verbs)來跟伺服器溝通,分別是HEADGETPOSTPUTPATCHDELETETRACEOPTIONSCONNECT。其中最常見的就是GETPOSTGET用來讀取資料,這個動作不應該造成任何資料變更,而POST用於送出資料。

Relational Database (RDBMS)

  • 關聯性資料庫
  • 今天我們用網路服務基本上就是在和資料庫做互動
  • 使用 SQL 語言做資料搜尋

可是 SQL 很煩...

  • 等於說是另外要學一個語言
  • 資料表之間的關聯越複雜,下的 SQL 指令就越來越長,變得很噁心 

所以 Active Record 就誕生了...

  • 是 Rails 和 資料庫之間的溝通橋樑
  • 會把資料表抽象化成 Ruby 的物件
  • 所以開發者可以用 Ruby 語言操作資料庫
  • yay! 不用煩惱 SQL 了!!!

課堂練習

課堂練習

Rails Model

  • 處理商業邏輯和資料庫互動的地方
  • 利用 ActiveRecord 操作資料庫

ActiveRecord

  • Rails 裡面負責操作資料庫的元件
  • 讓使用者能用Ruby 的語法,物件導向的概念操作資料庫
Made with Slides.com