Rails項目實戰剖析與技巧大全

Rails項目實戰剖析與技巧大全

Rails項目實戰剖析與技巧大全全書內容包括:如何基於Windows、Mac OS X和Linux建立Rails;如何配合MySQL and SQLite資料庫使用Rails;如何合併最新外掛程式、引擎和Ruby Gems到套用中,以節省開發時間;如何使用Yahoo YUI輕鬆實現一致的套用風格;如何將PHP站點翻新為Rails;如何使用Ajax技術為套用增色;如何使用最先進的Rails功能,如REST和Active Resource。

基本信息

版權資訊

書 名: Rails項目實戰剖析與技巧大全
作 者:(美國)(EldonAlameda)阿蘭梅達
出版社電子工業出版社
出版時間: 2008
ISBN: 9787121068775
開本: 16
定價: 59.80 元

內容簡介

如果你是一個已經領略過RubyonRails威力的開發人員,又想進一步提升Rails技能,本書對你而言將是無價之寶。本書的重點並不在於該框架的套用基礎,而是聚焦於帶你感客群多真實案例的開發實踐,包括部落格、個人備忘錄、日曆、一個由PHP移植為Rails的網站實例等。每一套用實例均來自最佳實踐,包括類型、功能、多種Rails外掛程式套用、Rails引擎和RubyGem。同時,也探討最先進的Rails功能,諸如新的REST執行和ActiveResource。作為必要的回顧,本書在直接進入項目實踐之前,先向讀者介紹了一個理想開發環境的建立。
本書適合程式開發人員參考學習,還可以作為高等院校相關專業師生的參考書。

作者簡介

EldonAlameda是一名Web開發人員,現居住於氣候寒冷的堪薩斯州。他現在為堪薩斯市一家剛起步的小型科技公司開發RubyonRails套用。在這之前,他在當地的廣告公司、SprintPCS及IBM等多家公司從事過軟體開發工作。

編輯推薦

尊敬的讀者: 實踐出真知。因此我相信學習Rails最好的辦法,就是用其來創建各種各樣的應用程式,只有這樣才能完全掌握這項技術。 在本書中,假設讀者已經具備了使用Ruby on Rails框架的基礎知識,已經了解其眾多令人激動的功能並希望能夠從中獲益。而現在,相信你正需要通過創建一些不同類型的Web應用程式,來獲得這些功能的第一手開發經驗。這也是本書的主要出發點,通過帶領讀者創建多個實際Rails套用項目,使大家能夠掌握最實用的開發經驗。其中涉及到豐富而完整的核心Rails特性。 在深入探討這些內容的同時,我們還將完成一系列的項目。包括創建含有外部API的一個簡單部落格,以REST方式構建、由圖表進行展現的一個鍛鍊情況跟蹤記錄程式,以及通過添加高級的JavaScript接口將已有的一個PHP網站轉換為Rails實現。除了以上這些,在最後一個項目中,我們還將使用最新版本的Rails及Active Resource來創建一個應用程式,同時介紹一些Rails 2.0中的變動和新增功能。 在本書中,每個項目都提供了必要的信息和工具。使得讀者在解決實際問題時可以輕易上手,並且在每個項目最後還包括一些額外的創意和練習。讀者可以按照自己的需要對這些應用程式進行擴展和改進。

目錄

第1部分

必要的準備工作(請不要跳過這一部分)
第1章搭建開發環境3
1.1安裝Ruby和Rails3
1.1.1在Linux上安裝Ruby4
1.1.2在Windows上安裝Rails4
1.1.3在MacOSX上安裝Rails5
1.2安裝資料庫6
1.2.1安裝SQLite7
1.2.2安裝SQLiteRubygem7
1.3代碼編輯工具8
1.3.1Windows8
1.3.2Linux11
1.3.3Mac11
1.3.4建議13
1.4安裝Web伺服器13
1.4.1WEBrick13
1.4.2Mongrel14
1.5最後給讀者的建議16
1.5.1使用版本控制系統16
1.5.2使用Capistrano實現自動部署17
1.6本章小結19
第2章創建Rails應用程式21
2.1創建步驟21
2.1.1步驟1:創建項目21
2.1.2步驟2:配置資料庫25
2.1.3步驟3:測試應用程式26
2.1.4步驟4:安裝樣式表(StyleSheet)27
2.1.5步驟5:將應用程式與Rails綁定27
2.2本章小結28

第2部分

MonkeyTasks日常任務管理
第3章實現用戶註冊與認證管理31
3.1創建頁面布局31
3.1.1初始化布局32
3.1.2第一個視圖模板35
3.2添加用戶註冊與認證管理36
3.2.1配置ActsasAuthenticated39
3.2.2實現用戶註冊功能41
3.2.3傳送郵件通知43
3.3本章小結49
第4章實現日常待辦事項管理51
4.1創建Task模型類51
4.2創建Task控制器53
4.3添加任務表單55
4.4更好的日期選擇控制項56
4.5Schedule模型59
4.6Todo模型60
4.7實現任務列表功能62
4.8實現日程表功能64
4.8.1安排任務65
4.8.2顯示日程表66
4.9使用局部模板(Partial)68
4.10使用Ajax71
4.10.1可排序元素71
4.10.2RJS72
4.11本章小結74
第5章完善MonkeyTasks77
5.1添加驗證功能(Validation)77
5.2任務修改功能77
5.3添加日曆(Calendar)77
5.4查看以前的任務78
5.5記錄每個任務的預計時間78
5.6顯示任務完成率78
5.7開發iPhone接口79
5.8最佳化資料庫查詢79
5.9將代碼移到模型類中80
5.10綁定ChronicGem81
5.11本章小結81

第3部分

Exercisr應用程式
第6章開發基於REST的應用程式85
6.1基於REST的開發85
6.1.1什麼是REST85
6.1.2REST的價值86
6.2第一個資源87
6.2.1REST工具87
6.2.2創建Exercise資源91
6.3添加基於REST的認證功能96
6.4改進外觀顯示102
6.5創建新的用戶103
6.6完成Exercise資源106
6.6.1創建模型間關聯關係106
6.6.2修改Exercise控制器的作用域107
6.6.3運動(Exercise)視圖109
6.7Workout資源112
6.7.1Workout模型及其關聯關係112
6.7.2Workout控制器112
6.7.3修改視圖114
6.8記錄鍛鍊過程中的數據116
6.8.1創建Activity模型類及其關聯關係117
6.8.2修改Activity路由119
6.8.3修改Activity控制器120
6.8.4修改Activity視圖模板122
6.8.5修改Workout控制器中的show方法124
6.8.6改進添加Activity的表單125
6.9跟蹤鍛鍊目標127
6.9.1修改模型類127
6.9.2創建嵌套路由128
6.9.3配置控制器128
6.9.4配置視圖132
6.9.5記錄上一次結果136
6.9.6探索REST接口136
6.10本章小結139
第7章為應用程式添加圖形功能141
7.1第二階段開發141
7.2Rails中的圖表141
7.2.1CSS圖表141
7.2.2Sparklines144
7.2.3Gruff圖表147
7.2.4Scruffy153
7.2.5Ziya155
7.3本章小結162
第8章完善Exercisr163
8.1為接口添加RJS163
8.2創建日曆來顯示鍛鍊的時間163
8.3對圖表進行快取164
8.4使首頁也符合REST要求164
8.5開發更多的圖表164
8.6調整模型類和控制器中的業務邏輯164
8.7開發網路交流功能165
8.8本章小結165

第4部分

簡單的部落格程式
第9章使用Typo創建部落格程式169
9.1Typo介紹169
9.1.1Typo的特點170
9.1.2安裝Typo170
9.1.3激活TypoBlog171
9.2Rails的啟動過程173
9.3理解Typo177
9.4Rails如何對請求進行路由181
9.5確定設計方案187
9.6使用Typo188
9.6.1管理Blog190
9.6.2添加內容191
9.7定製Typo192
9.7.1管理主題192
9.7.2關於主題193
9.7.3創建自定義主題193
9.7.4創建側邊欄(sidebar)組件198
9.7.5自定義側邊欄組件199
9.8本章小結200
第10章創建一個簡單的部落格引擎(Engine)201
10.1我們將創建什麼樣的引擎201
10.2創建第一組模型類202
10.3創建API205
10.3.1MetaWeblog服務API207
10.3.2支持BloggerAPI209
10.3.3支持圖像222
10.4創建部落格的展現界面228
10.4.1創建基本的布局228
10.4.2修改Application控制器230
10.4.3創建首頁230
10.4.4查看某篇日誌234
10.5本章小結238
第11章完善部落格程式239
11.1開發BloggerAPI239
11.2使用Mephisto來創建Blog程式239
11.3定製Typo239
11.4在方法中實現認證功能240
11.5添加快取(Caching)240
11.6添加評論和akismet垃圾廣告過濾功能240
11.7添加Web後台管理241
11.8針對分類的RSS檔案(Feed)241
11.9實現標籤(Tag)功能241
11.10本章小結242

第5部分

使用快取構建一個Web漫畫站點
第12章使用頁面快取構建基本的系統245
12.1基本的管理系統246
12.1.1上傳漫畫247
12.1.2Comic模型248
12.1.3修改路由251
12.1.4修改腳手架(scaffolding)252
12.1.5創建一個漫畫254
12.1.6簡單的認證系統256
12.1.7限制訪問258
12.2向公眾展現漫畫259
12.3頁面快取261
12.3.1開啟快取功能262
12.3.2清除快取266
12.4本章小結268
第13章實現高級快取269
13.1Members控制器270
13.2限制其他用戶的訪問271
13.3快取付費成員的頁面273
13.4使快取頁面過期275
13.5片段快取276
13.5.1自定義布局277
13.5.2清除片段快取282
13.6本章小結282
第14章完善Web漫畫站點285
14.1添加一個部落格(Blog)285
14.2集成一個論壇(Forum)285
14.3通過日期來選擇漫畫286
14.4完善身份認證系統286
14.5本章小結286

第6部分

教會社區網站
第15章用戶和檔案管理291 15.1安裝restful認證291
15.2我們即將要創建什麼294
15.2.1創建共享布局295
15.2.2Avatar模型296
15.2.3用戶的詳細信息模型298
15.2.4創建示例用戶300
15.2.5Profile控制器301
15.3修改用戶的詳細信息和頭像304
15.3.1修改檔案信息305
15.3.2查看檔案308
15.4添加部落格功能309
15.5在用戶頁面中添加部落格摘要317
15.6添加相冊功能319
15.7添加照片321
15.8相冊與照片控制器323
15.8.1創建一個新的相冊324
15.8.2查看指定相冊325
15.8.3顯示所有用戶的相冊326
15.9本章小結328
第16章完善社區站點329
16.1創建社區主頁329
16.1.1創建默認路由329
16.1.2index頁面330
16.1.3創建首頁334
16.2添加用戶目錄336
16.2.1創建字母索引336
16.2.2創建路由337
16.2.3添加directory方法337
16.2.4修改視圖模板338
16.3添加導航339
16.3.1上部導航339
16.3.2頁腳導航340
16.4添加評論340
16.4.1安裝acts_as_commentable外掛程式341
16.4.2顯示評論342
16.4.3添加評論345
16.5本章小結351
第17章完善教會社區套用353
17.1創建用戶導入或註冊功能353
17.2使用SWFupload批量上傳照片353
17.3添加好友列表功能354
17.4改進主頁355
17.5清理部分Ruby代碼355
17.6將代碼移到局部模板(Partial)中355
17.7添加快取功能357
17.8本章小結357

第7部分

GamingTrend網站
第18章PHP網站的遺留問題361
18.1簡要介紹當前系統362
18.1.1當前系統的代碼363
18.1.2遺留系統存在的問題365
18.2建立我們的應用程式366
18.3使用Ext-JS建立更好的界面368
18.3.1BorderLayout369
18.3.2表格(Grid)370
18.3.3對話框(Dialog)371
18.3.4訊息框(MessageBox)372
18.4在Rails應用程式中安裝Ext-JS373
18.5自動化Ext-JS安裝374
18.6本章小結378
第19章轉化遊戲記錄379
19.1對資料庫進行遷移轉化379
19.2Games表381
19.3創建Game模型385
19.4創建Developer和Publisher模型387
19.5創建Genres模型391
19.6配置路由393
19.7創建控制器393
19.8創建視圖396
19.8.1標準布局396
19.8.2使用ExtBorderLayout改進布局頁面399
19.9定義工作流(Workflow)402
19.9.1顯示當前資源列表402
19.9.2創建一個新資源402
19.9.3刪除指定資源403
19.9.4修改指定資源403
19.10建立開發商頁面403
19.10.1顯示開發商列表403
19.10.2修改開發商記錄408
19.10.3改進表格410
19.10.4在工具列上增加按鈕417
19.10.5刪除開發商記錄418
19.10.6新建開發商記錄421
19.11將工作流抽象為輔助方法423
19.12創建Show/Edit模板433
19.13遊戲435
19.13.1處理選擇列表框440
19.13.2提供所見即所得(WYSIWYG)功能442
19.14查看遊戲截圖446
19.15本章小結452
第20章新聞管理功能453
20.1修改資料庫453
20.2創建新聞模型455
20.3創建控制器457
20.4創建列表視圖458
20.4.1重定義index方法458
20.4.2創建index視圖458
20.4.3修改表格460
20.5捕獲創建中的錯誤信息471
20.6新聞編輯頁面472
20.6.1編輯新聞472
20.6.2激活(Activate)郵件474
20.6.3為新聞建立關聯關係476
20.7本章小結483
第21章完善遊戲網站485
21.1創建自己的生成器(Generator)485
21.2添加登錄功能485
21.3在新聞中關聯發行商、開發商和遊戲機型487
21.4創建一個遊戲機型常量487
21.5增加包裝圖片和遊戲截圖的上傳功能487
21.6支持遊戲評論488
21.7支持較長內容488
21.8添加ActsasParanoid外掛程式488
21.9將邏輯移到模型中489
21.10本章小結489

第8部分

使用EdgeRails(Rails2.0)集成REST應用程式
第22章Highrise的簡要介紹493
22.1註冊一個Highrise賬戶493
22.2創建聯繫人495
22.3創建任務496
22.4Highrise的更多功能496
22.5本章小結497
第23章集成Highrise的RESTAPI499
23.1瀏覽API499
23.2使用RESTAPI501
23.3新建EdgeRails項目502
23.3.1獲得Rails的Edge版本503
23.3.2創建EdgeRails應用程式503
23.4測試我們的連線505
23.5本章小結507
第24章創建預約程式509
24.1我們要創建什麼樣的程式509
24.2設計布局草圖509
24.2.1安裝Ext510
24.2.2使用Yahoo地圖510
24.2.3獲取應用程式ID511
24.2.4布局腳本511
24.3Home控制器512
24.4添加任務列表516
24.5顯示待辦任務518
24.5.1創建變數519
24.5.2建立數據源520
24.5.3在地圖上顯示客戶525
24.6管理備忘記錄(Notes)527
24.6.1顯示備忘信息528
24.6.2添加備忘信息528
24.6.3使用AJAX更新備忘信息529
24.7本章小結531
第25章完善Rails2.0應用程式533
25.1改進Highrise項目533
25.1.1快取客戶數據533
25.1.2創建約會533
25.1.3修改客戶信息534
25.2EdgeRails2.0的新特性534
25.2.1SexyMigrations534
25.2.2自動生成遷移代碼534
25.2.3資料庫命令535
25.2.4查看路由535
25.2.5查詢快取535
25.2.6改善REST風格的路由536
25.2.7從框架中移除的功能536
25.3本章小結537
……

書摘

搭建開發環境

Miracle Max:你催促一個製造奇蹟的人,只能得到一個糟糕的奇蹟。
——摘自William Goldman編劇的影片《公主新娘(The Princess Bride)》,1987年
為了能夠運行本書中的項目,首先需要保證在機器上已經安裝了如下的軟體。Ruby和Rails:因為Rails是一個針對於Ruby的框架,並且其自身也是使用Ruby編寫的,所以首先需要安裝Ruby。對於本書來說,Ruby的版本應該在1.8.4以上。稍後我會講解一些如何快速並且正確安裝Ruby及Rails的方法。
資料庫(Database):Rails框架是針對於創建基於資料庫驅動(Database—driven)的Web應用程式。因此如果沒有連線資料庫的話,這個框架很可能無法啟動。稍後會討論開發中經常會使用的幾種資料庫類型。
代碼編輯器(Code Editor):雖然從Rails的開發理論上來說,只要使用文本編輯器(可以創建和修改文本檔案)就足夠了,但是由於在實際中可能會牽扯到大量的檔案,所以我們在後面會介紹一些高級技巧,來幫助讀者提高開發的效率。
Web伺服器:再好的機器也需要藉助Web Server才能運行Rails程式。幸運的是,現在已經有幾種非常優秀的、基於Ruby實現的伺服器可以供我們選擇。

安裝Ruby和Rail

因為考慮到本書的大部分讀者可能已經閱讀過一些入門的Rails書籍,所以我也不打算花費太多的時問來講解如何安裝Rails。但是,又考慮到有些讀者的確需要了解這方面的內容,所以我想至少還是應該為他們指明一個正確的方向,以免有讀者在這個問題上無謂地浪費精力和時間。因此在這個部分中,我會從一個更高層次的角度來介紹如何在Linux、Windows和Mac OSX上安裝Rails。
如果讀者想參考一本入門級的Rails書籍,那么最好的選擇是《Agile Web Development with Rails》(Thomas,Dave et al. Pragmatic Programmers,2006)。
……

相關詞條

相關搜尋

熱門詞條

聯絡我們