Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
xdite committed May 31, 2013
1 parent 813ebaa commit 8fde383
Show file tree
Hide file tree
Showing 14 changed files with 125 additions and 131 deletions.
16 changes: 7 additions & 9 deletions manuscript/Book.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ how-to-use.txt
requirement.txt
install-on-mac.txt
chapter-00.txt
chapter-01-0.txt
chapter-01-0-1.txt
chapter-01-ext-01.txt
chapter-01-ext-02.txt
chapter-01-00.txt
chapter-01-00-ext-01.txt
chapter-01-00-ext-02.txt
chapter-01-1-0.txt
chapter-01-1-0-extra.txt
chapter-01-1-1.txt
Expand All @@ -29,11 +28,10 @@ chapter-02-1-5.txt
chapter-02-1-6.txt
chapter-02-1-7.txt
chapter-03.txt
chapter-03-1-0.txt
chapter-03-1-1.txt
chapter-03-1-2.txt
chapter-03-1-3.txt
chapter-03-1-4.txt
chapter-03-0.txt
chapter-03-1.txt
chapter-03-2.txt
chapter-03-3.txt
chapter-04.txt
chapter-04-1.txt
chapter-04-2.txt
Expand Down
19 changes: 0 additions & 19 deletions manuscript/chapter-01-0-1.txt

This file was deleted.

File renamed without changes.
File renamed without changes.
19 changes: 19 additions & 0 deletions manuscript/chapter-01-0.txt → manuscript/chapter-01-00.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,22 @@



{::pagebreak :/}

## Ch 1.0 CRUD

CRUD 指的是 Create(新增)、Read(讀取)、Update(更新)、Destroy(刪除)四種操作資料的基本方式,這也是開發網站時幾乎大家最常寫到的四種功能。

Rails 在開發上極具優勢的其中一個原因,就是使用了 RESTful 的機制以及 內建的 Convention,在實作 CRUD-like 功能時,隔外顯現開發速度上的優勢。

### 實作課題

本章將會實作以下課題

* 產生 Group 與 Post 這兩個 Model
* Group 需要有名稱 title, description
* Post 需要有文章標題 文章內容 content
* 寫出 Group 的 CRUD controller 與 View
* 寫出 Posts 的 CRUD controller 與 View
* 在 routing 中對 Group 和 Posts 分別宣告它們都是 resources

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{::pagebreak :/}

## Ch 3.1.0 devise 與 Rails 4
## Ch 3.0 devise 與 Rails 4

### 安裝 gem

Expand Down
Empty file removed manuscript/chapter-03-1-4.txt
Empty file.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{::pagebreak :/}

## Ch 3.1.1 對需要登入才能使用的 Action 加入限制
## Ch 3.1 對需要登入才能使用的 Action 加入限制

根據需求:使用者必須能夠 註冊 / 登入,登入後才可以開設 Group,與發表 Post。

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{::pagebreak :/}

## Ch 3.1.2 讓 Group 與 User 產生關聯:
## Ch 3.2 讓 Group 與 User 產生關聯:

新增一條 migration: `rails g migration add_user_id_to_group`

Expand Down
4 changes: 2 additions & 2 deletions manuscript/chapter-03-1-3.txt → manuscript/chapter-03-3.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{::pagebreak :/}

## Ch 3.1.3 讓 Post 與 User 產生關聯:
## Ch 3.3 讓 Post 與 User 產生關聯:


新增一條 migration: `rails g migration add_user_id_to_post`
Expand Down Expand Up @@ -54,7 +54,7 @@ class User < ActiveRecord::Base

end

{::pagebreak :/}

~~~~~~~~~


Expand Down
101 changes: 3 additions & 98 deletions manuscript/chapter-04.txt
Original file line number Diff line number Diff line change
@@ -1,115 +1,20 @@
# 練習作業 4 - 實作 User 後台
# 練習作業 4 - 實作 Account 後台

## 作業目標

實作簡單的 user account 機制
實作簡單的 Account 後台機制

* user 可以至 account 找到自己曾經發表過的文章
* user 可以修改自己的基本資料


## 練習主題
### 本章練習主題

* namespace routing
* strong parameters

## 作業解答

TODO

# 練習作業 5 - 為文章列表加入分頁機制

## 作業目標

* 文章列表要能夠分頁
* 每一頁 10 筆
* 每個 Group 要秀出現在有多少 post 數量
* 文章列表的排序要以發表時間以 DESC 排序。

## 練習主題

* 使用 [counter_cache](http://railscasts.com/episodes/23-counter-cache-column) 取代直接對資料庫的 count
* 實作看板分頁(pagination)機制
* 了解 ORM 的基本用法


## 作業解答

TODO


# 練習作業 6 - Refactor code


## 作業目標

* 使用系統 helper / 自己撰寫的 helper 包裝 html
* 使用 partial 整理 html
* 使用 scope 整理 query


## 練習主題

* 練習使用內建 helper
* 練習拆 partial
* 練習使用 scope 機制包裝不同 condition 的 SQL query




## 作業解答

TODO

# 練習作業 7 - 撰寫自動化 Rake 以及 db:seed


## 作業目標

用 Rake 撰寫自動化步驟,生假資料。

寫一個 rake 可以達成以下步驟:「砍 db => 建 db => 跑 migration => 生種子資料」,另一個 rake 是生假文章與假留言。

## 練習主題

* 操作 rake -T
* 撰寫一個 task 可以自動連續執行 rake db:drop ; rake db:create ; rake db:migrate ; rake db:seed
* 撰寫一個 task 可以執行 rake dev:fake 生假資料 ( 自己寫 namespace : dev, 裡面放一個 task 叫做 fake,fake 資料用 Populator 生) # 請自行練習


## 參考資料

* [Ruby on Rails Rake Tutorial](http://jasonseifer.com/2010/04/06/rake-tutorial)
* [What’s New in Edge Rails: Database Seeding](http://ryandaigle.com/articles/2009/5/13/what-s-new-in-edge-rails-database-seeding)

## 作業解答

TODO


# 練習作業 8 - 將 Groupme deploy 到租來的 VPS


## 作業目標

在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby Enterprise Edition 與 mod_rails。使用 [Capistrano](https://github.com/capistrano/capistrano/wiki) 佈署 application。

## 練習主題

* 學會如何自動部署專案
* 使用 capistrano 自動部署專案
* 操作 cap deploy:setup
* 操作 cap deploy
* 操作 cap deploy:rollback
* 操作 cap deploy:restart


## 參考資料

* [rails-nginx-passenger-ubuntu](https://github.com/jnstq/rails-nginx-passenger-ubuntu)
* [AWDR4](http://pragprog.com/titles/rails4/agile-web-development-with-rails) deploy 章節


## 作業解答

TODO
17 changes: 17 additions & 0 deletions manuscript/chapter-05.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# 練習作業 5 - 為文章列表加入分頁機制

## 作業目標

* 文章列表要能夠分頁
* 每一頁 10 筆
* 每個 Group 要秀出現在有多少 post 數量
* 文章列表的排序要以發表時間以 DESC 排序。

## 練習主題

* 使用 [counter_cache](http://railscasts.com/episodes/23-counter-cache-column) 取代直接對資料庫的 count
* 實作看板分頁(pagination)機制
* 了解 ORM 的基本用法


## 作業解答
22 changes: 22 additions & 0 deletions manuscript/chapter-06.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 練習作業 6 - Refactor code


## 作業目標

* 使用系統 helper / 自己撰寫的 helper 包裝 html
* 使用 partial 整理 html
* 使用 scope 整理 query


## 練習主題

* 練習使用內建 helper
* 練習拆 partial
* 練習使用 scope 機制包裝不同 condition 的 SQL query




## 作業解答

TODO
52 changes: 52 additions & 0 deletions manuscript/chapter-07.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 練習作業 7 - 撰寫自動化 Rake 以及 db:seed


## 作業目標

用 Rake 撰寫自動化步驟,生假資料。

寫一個 rake 可以達成以下步驟:「砍 db => 建 db => 跑 migration => 生種子資料」,另一個 rake 是生假文章與假留言。

## 練習主題

* 操作 rake -T
* 撰寫一個 task 可以自動連續執行 rake db:drop ; rake db:create ; rake db:migrate ; rake db:seed
* 撰寫一個 task 可以執行 rake dev:fake 生假資料 ( 自己寫 namespace : dev, 裡面放一個 task 叫做 fake,fake 資料用 Populator 生) # 請自行練習


## 參考資料

* [Ruby on Rails Rake Tutorial](http://jasonseifer.com/2010/04/06/rake-tutorial)
* [What’s New in Edge Rails: Database Seeding](http://ryandaigle.com/articles/2009/5/13/what-s-new-in-edge-rails-database-seeding)

## 作業解答

TODO


# 練習作業 8 - 將 Groupme deploy 到租來的 VPS


## 作業目標

在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby Enterprise Edition 與 mod_rails。使用 [Capistrano](https://github.com/capistrano/capistrano/wiki) 佈署 application。

## 練習主題

* 學會如何自動部署專案
* 使用 capistrano 自動部署專案
* 操作 cap deploy:setup
* 操作 cap deploy
* 操作 cap deploy:rollback
* 操作 cap deploy:restart


## 參考資料

* [rails-nginx-passenger-ubuntu](https://github.com/jnstq/rails-nginx-passenger-ubuntu)
* [AWDR4](http://pragprog.com/titles/rails4/agile-web-development-with-rails) deploy 章節


## 作業解答

TODO

0 comments on commit 8fde383

Please sign in to comment.