rails是使用MVC架構的framework。學習一段時間後,更能體會這種架構開發web application帶來的方便。
所謂的MVC,指的是Model(資料操作)、View(前端效果)和Controller(流程控制)。
剛開始接觸時,對MVC的控制會感到一頭霧水,這裡以rails 101為範本做簡單的流程介紹:
設定routing,讓http request到對應的controller action執行
config/routes.rb 1
2
3
4
5
6
7
8
9
10
11
12
13
14Rails.application.routes.draw do
root "groups#index"
resources :groups
end
```
2. 在controller新增action,例如討論版的首頁就需要建立index action
``` ruby app/controllers/groups_controller.rb
class GroupsController < ApplicationController
def index
@group = Group.all
end
...
end設定model,思考需要哪些資料欄位以及和其它資料表的關係。例如group和post有has_many的關係
app/models/group.rb 1
2
3
4
5class Group < ActiveRecord::Base
validates :title, presence: true #表示title這個欄位必填
has_many :posts, dependent: :delete #當group被刪除時,底下的post也得刪除
...
end設定view。如果需要使用URL helper,得思考request要發到哪個action,例如:
ruby app/views/groups/index.html.erb <div class="col-md-12"> <div class="group"> <%= link_to("New group", new_group_path, class: "btn btn-primary pull-right") %> </div> ...
使用者點擊”New group”這個按鈕時,會發一個request至new這個action並將頁面轉到/groups/new.html
以上是簡單的流程。這四個步驟會依功能需要增加複雜度,開始實作前也得思考model間的關係。