Skip to content

rocodev/rails-101

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 

Repository files navigation

前言

學習曲線過高往往是有志於學習 Ruby on Rails 的開發者心中的一抹遺憾。市面上的中文書不知過期了幾年,網路上找到的 Hello World 跑不起來。最誇張的是,光是想裝一套穩當的開發環境在電腦上,卻發現自己完全不得其門而入,做不到!

我是 xdite,台灣知名的資深 Ruby on Rails 程式設計師。07年 自學 Rails 至今。曾經訓練、帶領多支技術團隊開發過各式各樣的 Rails 專案。

在過去的自學過程當中,我意識到 Ruby on Rails 的版本變革過速,是造成開發者培育不易的主要原因。培育一個合格的初級 Rails Developer,企業可能往往要投上數月甚至一年才有所得。

如果能幫新手弭平各式各樣的超級門檻,是不是能把長達一年的摸索期,砍到只剩短短的幾個禮拜?最後,我設計了一份超級新手作業(最後變成了本書)。這份作業成功的讓我將新人培育的時間從數月降至兩週以下。這些開發者,有的甚至之前從未有過任何網頁開發背景

你也想學 Rails 嗎?他們可以,我相信你也辦得到!

說明

這份文件 是 Rails 101 的部分公開資料。若您喜歡本書,請付費 購買支持。(註:因為 Rails 版本更新速度過快,如有安裝環境問題,請參考本指南。)

另外要再提醒的是,Rails 用「看的」並不會「達成任何效果」。而這本書裡面的每一個章節,都是身為 Rails Developer 中基本再基本的功夫,跳過任何一章只會讓你屆時在實戰中踢到更大的鐵板。建議讀者反覆練習寫到倒背如流。

筆者建議的練習標準是:能夠在五分鐘之內用手寫出 RESTful 七個 action,讀者不妨可以試看看。

目錄

Buy a Mac

開發 Ruby on Rails 基本上強烈建議使用 OS X 10.6 + 以後作為開發平台。因為不少的 Rails ecosystem 都圍繞著 OSX。不用 Mac 開發基本上非常容易碰壁。

硬體需求

  • 一台 2009 後出款的 Mac Mini / Macbook Pro / Macbook Air 。
  • 4 - 8GB 以上的記憶體。(開發網站的時候,有實際開 VM 測 IE 的需求。)

Learn Git, Command Line, Ruby

Rails 的生態圈與 Git 和 Unix Command Line 綁的非常深。不熟悉的入門者,建議購買以下教材實作練習:

建置 Bug Free Rails 開發環境

延伸閱讀:十個 Ruby Web Developer 應該熟悉的工具

開發工具

建議使用 Sublime Text 2 支援跨平台:Win / Linux / Mac。

Rails : RESTful , 雙層 Resource

作業目標

開發一個簡易論壇系統。系統要有 Board 與 Post 兩個 model,寫出 CRUD 介面,並且文章網址是使用 http://forum_demo.dev/board/1/post/2 這種表示。

吸收觀念

  • CRUD & migration
  • has_many 與 belongs_to
  • resources 與雙層 resources
  • before_filter :find_board

實作使用者認證系統

作業目標

為論壇加入使用者機制,使用者必須能夠 註冊 / 登入,登入後才可以發表 Post,不然只能瀏覽。只有自己的 Post 才能進行修改與刪除。

吸收觀念

  • plugin 安裝與使用 : devise
  • routes 優先權與 route alias
  • before_filter: login_required
  • session : current_user
  • before_filter

為論壇加入管理者機制以及管理者後台

作業目標

實作簡單的 admin 機制, admin 擁有一個後台,可以刪改所有文章。admin 可以開板 / 刪板。網址是 http://forum_demo.dev/admin/boards

只有身分是 admin 的人可以進後台。admin 的判別方是 column 裡加一個 boolean,判斷是否 admin。

這個 attribute 必須用 attr_accessible / attr_protected 保護。

吸收觀念

為論壇加上分頁機制

作業目標

看板的文章要能夠分頁,每一頁 5 筆,每一個看板要秀出現在看板裡有多少 post 數量。可用 params 配合 scope 在文章列表排序。

吸收觀念

實作圖片上傳系統

作業目標

發表文章時可以順便夾帶一張附件。

吸收觀念

form_for multipart # 內含多媒體要指定

上傳檔案套件

carrierwave

利用 Rake 撰寫自動執行的 tasks

作業目標

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

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

吸收觀念

  • rake -T
  • rake db:drop ; rake db:create ; rake db:migrate ; rake db:seed
  • rake dev:fake ( 自己寫 namespace : dev, 裡面放一個 task 叫做 fake,fake 資料用 Populator 生) # 請自行練習

參考資料

將論壇 deploy 到租來的 VPS

作業目標

在租來的 VPS 上面建置 Ruby on Rails production 環境,使用 Ruby 1.9 與 mod_rails。使用 Capistrano 佈署 application。

吸收觀念

  • cap deploy:setup
  • cap deploy
  • cap deploy:rollback
  • cap deploy:restart

參考資料

Rails 最新線上學習資源

Podcast

商業教材

Websites

Releases

No releases published

Packages

No packages published