關於作者
張文鈿,網路上的代號為ihower,曾擔任RubyKaigi 2011、RubyConf China、OSDC.TW、COSCUP、WebConf.TW歷屆講者。2006年開始接觸Rails,從此愛上Ruby這個極具豐富樂趣及高生產力的程式語言。他同時也是Ruby Taiwan社群和RubyConf Taiwan大會的創辦人。目前為創業學校ALPHA Camp的專職講師。
筆者的部落格http://ihower.tw以及Twitter帳號@ihower,歡迎追蹤訂閱。
軟體版本
本書使用的Rails版本是4.2,Ruby版本是2.2。本書出版後請參考本書網站以獲得最新相容性修改。
本書網站
你可以在http://ihower.tw/rails4看到本書最新版本以及紙本勘誤。如果你有任何問題,也歡迎來信給我。
本書體例
為了避免讀者混淆指令的使用情境,區分如下:
- 錢號
$
開頭的是指命令列下的指令 - 大於
>
開頭的是指在rails console
主控台下的指令 - 井號
#
是註解說明 - 其他則是程式原始碼
例如在以下的操作中,我們先輸入了rails console進入Rails的主控台,然後輸入Person.first
和Person.count
:
那麼在本書中,會這樣書寫:
$ rails console
Loading development environment (Rails 4.2.1)
> Person.first # <Person id: 1>
> Person.count # 1
本書對象
本書主要對象為網站程式設計師,比較不適合完全沒有網頁開發經驗的朋友,在學習Rails前,最好對以下知識有基本認識:
- 一些程式設計的經驗,例如Java、C#、PHP、Python、Perl、JavaScript
- HTML/CSS網頁設計基礎,推薦Udacity: Intro to HTML and CSS或Code School: Front-end Foundations教材
- 對網路通訊協定有基礎認識,例如HTTP、DNS等,推薦Introduction to HTTP和Web Operations 101: Web Flow
- 對RDBMS關聯式資料庫和SQL語法有基本了解,推薦Udacity: Intro to Relational Databases和MySQL 超新手入門從第0章至第5章CRUD與資料維護。
- 熟悉指令列操作(CLI: command line interface),Unix-like作業系統為佳,推薦Treehouse: Console Foundations、The designer’s guide to the OSX command prompt和The Command Line Crash Course教材。
- Ajax章節會需要用到jQuery(跨瀏覽器的JavaScript函式庫),推薦CodeSchool: Try jQuery教材。
如果您有PHP/MySQL或ASP、JSP等網頁應用程式開發經驗,相信這些對您應該不陌生。
致謝
本書起初的材料來源,來自於準備中研院自由軟體鑄造場OSSF主辦的Ruby on Rails工作坊課程,在這課程中獲得了教學相長的寶貴經驗,感謝OSSF對於開源軟體和開源社群的支持。本書在撰寫過程也收到非常多台灣和大陸讀者來信勘誤指教,對這本書產生了良性回饋,在此感謝:hSATAC、timloo0710、seekcalm、ETBlue、Michael Wang、liukai、inepalon、Ya-yu Huang、aiasfina、David Chuang、Yu-Yao Chang、yang thomas、inepalon、guan-ting chen、Eric.Xiong、pptpb.tw、saitoTK、le jerry、jeffchen1453、EvenWu、Jasper CAI、dreamy0909、JmeHsieh、逍遥、Mark GK、LiChun、tonytonyjan、Kang-Yu Li、曾小黑、Pomin Chen、jzg、ayaya、Juanito Fatas、紅音也、Vincentzh、idarfan、lixing、jerrycheng、maxz、TaopaiC、Fukuball、klobo、liyq205、EIA ANG、caiguo、良葛格、Lam、Daniel Tsai、Hillman Yang、sdjcw13、Jingqiang、foxzool、danix、Yang Weiqi、周裕波、David Chang、张杰、Sgar Wang、zw963、feynixs、Youhua Wang、韩冰、Silver Chen、Kerby Wang、贵超、everyx Lo、shch、David Huang、士揚、Dars、小強、Daniel Yuen、Kevin Shen、floydsoft、Yuan-Hong Zeng、纪东、浩翔、Cray Kao、Theresa、奕辰、WM、Po-Yu、ZhaoZijie、Sean Chen、克彥、庆冲、Gary Cruise、Lester、yousheng、詩凱、Wei-Luan、Zen David、beta shepherd、佳和、凤祥、odin、ChengYu、Bill Chang、Yuting。
最後,還要特別感謝gogojimmy、雨蒼和Juanito Fatas協助撰寫了部分內容和潤稿,以及ALPHA Camp第三屆學員Amos、Fung、Reinhard、Calvin、Jimmy、第四屆學員Sky、Kidd、Roy、Peter、John、Asika、Doran、Yang為本書的完成做了最後的衝刺。