《RailsSpace——Ruby on Rails Web套用開發》是2009年1月人民郵電出版社出版的圖書,作者是[美]Michael Hartl Aurelius Prochazka。
基本介紹
- 書名:RailsSpace——Ruby on Rails Web套用開發
- 作者:[美]Michael Hartl Aurelius Prochazka
- 出版社:人民郵電出版社
- 出版時間:2009年1月
- 頁數:424 頁
- 定價:55 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115191212
內容簡介,圖書目錄,
內容簡介
本書通過對一個社交網路RailsSpace開發過程的探促燥兵介紹,詳細地展示了流行的Web應用程式開發框架Ruby on Rails的配置和使用方法。本書循序漸進地帶凶巴紙說領讀者完成一個完整的項目,從靜態的標題頁開始,通過添加註冊和驗證功能,逐步完成一個高度動態的網站,它具備用戶配置、圖像上傳、簡單的部落格、純文本和地理位置搜尋以及交友請求系統等功能。本書內容翔實,涵蓋了諸如MVC程式架構、關係資料庫和AJAX支持、強大的測試機制和REST風格等許付譽影多Rails的精閥廈地彩特性,以及註冊和登錄、CSS樣式和特效、後台資料庫互動、部落格站點等內容。
本書是以實例指南的形式組織編寫的入門書籍,適合渴望了解Ruby on Rails的開發人員、各類Web開發人員以及網站建設人員。已經熟悉Ruby甚到已經對Rails有了一定了解的讀者,也能夠在本書中學到Rails更新版本的許多新特性。對於需要“Rails百科全書”的讀者,本書則提供了許多參考書籍和網站。
圖書目錄
第 1章 導言 1
1.1 使用Rails的理由 1
1.1.1 生產力趨於自由 1
1.1.2 不自由的生產力 2
1.2 選擇本書的理由 3
1.3 本書讀者 3
1.3.1 閱讀本書的方法 4
1.3.2 跟蹤本書動態 4
1.4 兩個Rails的故事 4
1.4.1 Aure 4
1.4.2 Michael 6
第 1部分 基礎知識
第 2章 入門指南 10
2.1 預備知識 10
2.1.1 設定開發環境 12
2.1.2 執行rails 12
2.1.3 開發伺服器 14
2.2 第 一個頁面 15
2.2.1 生成一個控制器 16
2.2.2 Site控制器 17
2.2.3 Rails URL 19
2.2.4 改變路由 20
2.3 Rails視圖 20
2.4 頁面布局 22
2.4.1 ERb、操作和實例變數 24
2.4.2 回顧:切分一個頁面 25
2.4.3 添加導航欄 26
2.4.4 哈希表 27
2.4.5 符號 28
2.4.6 完善link_to 28
2.4.7 一些風格的問題 29
2.4.8 完善導航欄 30
2.4.9 自己動手查找 30
2.5 基於樣式的開發 31
第3章 用戶建模 34
3.1 創建用戶模型 34
3.1.1 安裝資料庫 34
3.1.2 migration和用戶模型 37
3.1.3 針對用戶模型的第 一版本的migration代碼 37
3.1.4 運行migration 39
3.2 用戶模型驗證 41
3.2.1 控制台 41
3.2.2 一個簡單的驗證機制 43
3.2.3 驗證機制的執行 45
3.2.4 改進驗證機制 46
3.2.5 全功能的驗證機制 47
3.2.6 有魔法的列 49
3.3 進一步確保數厚估凶據完整性 51
第4章 用戶註冊 53
4.1 User控制器 53
4.2 用戶註冊:視圖 54
4.2.1 註冊視圖:外觀 54
4.2.2 理解註冊視圖 58
4.2.3 精化註冊表單 59
4.2.4 享受表單並調試它 61
4.3 用戶註冊:實際操作 63
4.3.1 表單錯誤信息 67
4.3.2 Flash 70
4.3.3 完成後的register函式 72
4.3.4 中心頁面的占位模組 73
4.4 添加註冊連結 74
4.5 一個示例漏踏用戶 78
第5章 測試入門 79
5.1 測試哲學 80
5.2 配置測試資料庫 80
5.3 測試Site控制器 81
5.3.1 有價值的測試 82
5.3.2 測試是否過度 84
5.4 測試註冊機制 84
5.4.1 運行功能測試 84
5.4.2 針對註冊機制的基本測試 85
5.4.3 測試成功的註冊 87
5.4.4 測試不成功的註冊 88
5.4.5 執行測試 90
5.4.6 是否還需要其他針對註冊功能的測試 91
5.5 基本的User模型測試 91
5.6 詳細的User模型測試 94
5.6.1 測試唯一性 95
5.6.2 測試用戶名長度 96
5.6.3 使用控制台 97
5.6.4 測試密碼長度 98
5.6.5 測試正則表達式 100
5.6.6 執行所有測試 106
第6章 登錄和註銷 108
6.1 使用session維護狀態 108
6.2 登錄 110
6.2.1 跟蹤登錄狀態 110
6.2.2 註冊時自動登樂墊檔錄 110
6.2.3 基於session變數的調試 111
6.2.4 登錄視圖和操作 115
6.2.5 針對有效登錄的測試 117
6.2.6 針對無效登錄的測試 119
6.3 註銷 120
6.3.1 測試註銷操作 122
6.3.2 測試導航功能 122
6.4 保護頁面 124
6.4.1 愚笨的頁面保護 124
6.4.2 巧妙的頁面保護 125
6.4.3 測試頁面保護 127
6.5 友好的URL轉向 128
6.5.1 request變數 128
6.5.2 友好的登錄後轉向 132
6.5.3 友好的註冊後轉向 133
6.5.4 友好性測試 134
6.6 對基本的登錄功能進行重構 135
6.6.1 logged in? 136
6.6.2 login! 139
6.6.3 logout! 142
6.6.4 clear_password! 143
6.6.5 消除表單處理中的重複代碼 145
6.6.6 消除友好轉向中的重複代碼 146
6.6.7 健康狀態檢查 148
第7章 高級登錄功能 149
7.1 記憶功能 149
7.1.1 Remember Me?複選框 149
7.1.2 Remember Me屬性 152
7.1.3 Remember Me cookie 153
7.2 真正記住用戶 158
7.2.1 驗證cookie 159
7.2.2 記起曾經記住的 160
7.2.3 更新logout函式 162
7.2.4 更安全的cookie 164
7.2.5 完成的(?)函式 166
7.3 Remember Me測試 167
7.3.1 更新後的登錄測試 167
7.3.2 更新後的註銷測試 172
7.4 高級測試:集成測試 173
7.4.1 測試cookie記憶:第 一個片斷 173
7.4.2 對測試代碼進行測試:一個警示 175
7.4.3 對Rails測試的一些反思 177
7.5 再次重構 177
7.5.1 對記住用戶信息的代碼進行重構 178
7.5.2 對忘記用戶信息的代碼進行重構 180
7.5.3 兩點改進 181
7.5.4 徹底重構後的login函式 183
7.5.5 **後需要考慮的問題 185
第8章 更新用戶信息 186
8.1 不僅僅是占位頁面的中心 186
8.2 更新E-mail地址 187
8.3 更新密碼 189
8.4 測試用戶編輯功能 196
8.4.1 測試輔助函式 196
8.4.2 測試編輯頁面 200
8.4.3 高級測試 201
8.5 partials 203
8.5.1 兩個簡單的partial 203
8.5.2 更高級的partial 204
8.5.3 **後一個小錯誤 206
8.5.4 更新登錄和註冊操作 207
第 2部分 創建一個社交網路
第9章 個人配置信息 212
9.1 用戶配置信息占位頁面 213
9.1.1 用戶配置信息頁面的URL 213
9.1.2 Profile控制器和操作 214
9.2 用戶規格描述 216
9.2.1 創建Spec模型 216
9.2.2 Spec模型 218
9.2.3 模型整合 220
9.3 編輯用戶規格 221
9.3.1 Spec規格控制器 221
9.3.2 一個HTML公共工具程式 223
9.3.3 規格描述的編輯視圖 225
9.3.4 保護規格描述的相關頁面 226
9.3.5 測試規格描述功能 227
9.4 更新用戶中心 230
9.4.1 新的hub視圖 231
9.4.2 顯示規格描述信息的方框 234
9.4.3 命名路由和配置信息相關的URL 235
9.4.4 用戶中心的主要內容 237
9.5 個人FAQ:興趣與個性 240
9.5.1 FAQ模型 240
9.5.2 FAQ控制器 243
9.5.3 編輯FAQ 243
9.5.4 將FAQ添加到用戶中心 245
9.5.5 測試FAQ功能 248
9.6 面向公眾的配置信息 249
第 10章 社區 252
10.1 創建一個社區(Community控制器) 252
10.2 創建示例用戶 253
10.2.1 收集數據 253
10.2.2 載入數據 254
10.3 社區索引 256
10.3.1 find操作中的新技巧 257
10.3.2 index操作 259
10.3.3 字典序索引 261
10.3.4 顯示索引結果 263
10.4 對結果進行完善 267
10.4.1 添加分頁功能 267
10.4.2 結果摘要信息 268
第 11章 搜尋與瀏覽 271
11.1 搜尋 271
11.1.1 搜尋視圖 271
11.1.2 Ferret 273
11.1.3 使用find_by_進行搜尋 275
11.1.4 為搜尋頁面添加分頁功能 277
11.1.5 規則的異常 280
11.2 測試搜尋頁面 282
11.3 著手瀏覽功能 284
11.3.1 瀏覽頁面 284
11.3.2 通過A/S/L查找(暫時保留L) 286
11.4 區域、區域、區域 290
11.4.1 本地的地理信息資料庫 290
11.4.2 使用GeoData進行區域搜尋 292
11.4.3 區域名稱 295
11.4.4 添加瀏覽驗證 296
11.4.5 **終的社區主頁 301
第 12章 頭像 303
12.1 為上傳頭像做準備 303
12.1.1 調整一個模型 304
12.1.2 頭像上傳頁面 305
12.1.3 用於頭像功能的partial 308
12.2 維護頭像信息 310
12.2.1 ImageMagick和圖像轉換 310
12.2.2 save方法 313
12.2.3 添加驗證機制 315
12.2.4 刪除頭像 317
12.2.5 測試頭像功能 319
第 13章 E-mail 322
13.1 Action Mailer 322
13.1.1 配置 322
13.1.2 密碼提醒 323
13.1.3 添加提醒連結以及傳送提醒信息 325
13.1.4 測試提醒功能 327
13.2 雙向隱藏的E-mail系統 330
13.2.1 E-mail連結 330
13.2.2 correspond操作和E-mail表單 331
13.2.3 E-mail郵件 334
13.2.4 測試雙向隱藏的E-mail 336
第 14章 交友系統 340
14.1 為交友系統創建數據模型 340
14.1.1 抽象的朋友關係 340
14.1.2 Friendship模型 341
14.1.3 創建未決定的朋友關係 343
14.1.4 朋友關係請求 344
14.1.5 完成Friendship模型 345
14.1.6 測試Friendship模型 346
14.2 朋友關係請求 348
14.2.1 建立朋友關係請求的連結 348
14.2.2 控制請求 350
14.3 管理朋友關係請求 352
14.3.1 has_many :through 352
14.3.2 交友中心 354
14.3.3 Friendship操作 357
14.3.4 測試建立朋友關係的請求 359
第 15章 REST風格的部落格 361
15.1 應該休息(REST)一下了 361
15.1.1 REST和CRUD 362
15.1.2 URL修飾符 364
15.1.3 房間裡的大象:分號 365
15.1.4 應答格式和一個免費的API 366
15.2 用於REST風格的部落格的腳手架 367
15.2.1 第 一個REST風格的資源 367
15.2.2 部落格中的帖子 369
15.2.3 Posts控制器 372
15.3 創建真正的部落格 375
15.3.1 連線到模型 375
15.3.2 部落格和帖子的路由 376
15.3.3 真正的Posts控制器 377
15.3.4 部落格管理 380
15.3.5 創建帖子 381
15.3.6 顯示帖子 383
15.3.7 編輯帖子 386
15.3.8 發表帖子 387
15.3.9 **後一個瑣碎的細節 389
15.4 REST風格的測試 391
15.4.1 默認的REST功能測試 391
15.4.2 兩個自定義測試 393
第 16章 基於AJAX的部落格評論功能 395
16.1 REST風格的評論功能 395
16.1.1 評論資源 395
16.1.2 Comment模型及其關聯 396
16.1.3 Comments控制器和搶先式的partial 398
16.1.4 為評論相關的請求提供路由 399
16.2 進入AJAX 400
16.2.1 新評論 401
16.2.2 創建評論 404
16.2.3 刪除評論 406
16.3 視覺效果 408
16.3.1 RJS檔案和第 一個特效 408
16.3.2 另兩個特效 410
16.3.3 取消按鈕 411
16.3.4 優雅地退而求其次 411
16.4 調試和測試 413
16.4.1 再次審視new 413
16.4.2 基於xhr的AJAX測試 414
第 17章 接下來的操作 416
17.1 部署的考慮點 416
17.1.1 軟體和硬體選項 416
17.1.2 在生產模式中運行 417
17.1.3 **基本的生產伺服器環境 418
17.1.4 伸縮性 420
17.1.5 管理基礎 421
17.2 與Ruby and Rails相關的更多信息 423
3.2 用戶模型驗證 41
3.2.1 控制台 41
3.2.2 一個簡單的驗證機制 43
3.2.3 驗證機制的執行 45
3.2.4 改進驗證機制 46
3.2.5 全功能的驗證機制 47
3.2.6 有魔法的列 49
3.3 進一步確保數據完整性 51
第4章 用戶註冊 53
4.1 User控制器 53
4.2 用戶註冊:視圖 54
4.2.1 註冊視圖:外觀 54
4.2.2 理解註冊視圖 58
4.2.3 精化註冊表單 59
4.2.4 享受表單並調試它 61
4.3 用戶註冊:實際操作 63
4.3.1 表單錯誤信息 67
4.3.2 Flash 70
4.3.3 完成後的register函式 72
4.3.4 中心頁面的占位模組 73
4.4 添加註冊連結 74
4.5 一個示例用戶 78
第5章 測試入門 79
5.1 測試哲學 80
5.2 配置測試資料庫 80
5.3 測試Site控制器 81
5.3.1 有價值的測試 82
5.3.2 測試是否過度 84
5.4 測試註冊機制 84
5.4.1 運行功能測試 84
5.4.2 針對註冊機制的基本測試 85
5.4.3 測試成功的註冊 87
5.4.4 測試不成功的註冊 88
5.4.5 執行測試 90
5.4.6 是否還需要其他針對註冊功能的測試 91
5.5 基本的User模型測試 91
5.6 詳細的User模型測試 94
5.6.1 測試唯一性 95
5.6.2 測試用戶名長度 96
5.6.3 使用控制台 97
5.6.4 測試密碼長度 98
5.6.5 測試正則表達式 100
5.6.6 執行所有測試 106
第6章 登錄和註銷 108
6.1 使用session維護狀態 108
6.2 登錄 110
6.2.1 跟蹤登錄狀態 110
6.2.2 註冊時自動登錄 110
6.2.3 基於session變數的調試 111
6.2.4 登錄視圖和操作 115
6.2.5 針對有效登錄的測試 117
6.2.6 針對無效登錄的測試 119
6.3 註銷 120
6.3.1 測試註銷操作 122
6.3.2 測試導航功能 122
6.4 保護頁面 124
6.4.1 愚笨的頁面保護 124
6.4.2 巧妙的頁面保護 125
6.4.3 測試頁面保護 127
6.5 友好的URL轉向 128
6.5.1 request變數 128
6.5.2 友好的登錄後轉向 132
6.5.3 友好的註冊後轉向 133
6.5.4 友好性測試 134
6.6 對基本的登錄功能進行重構 135
6.6.1 logged in? 136
6.6.2 login! 139
6.6.3 logout! 142
6.6.4 clear_password! 143
6.6.5 消除表單處理中的重複代碼 145
6.6.6 消除友好轉向中的重複代碼 146
6.6.7 健康狀態檢查 148
第7章 高級登錄功能 149
7.1 記憶功能 149
7.1.1 Remember Me?複選框 149
7.1.2 Remember Me屬性 152
7.1.3 Remember Me cookie 153
7.2 真正記住用戶 158
7.2.1 驗證cookie 159
7.2.2 記起曾經記住的 160
7.2.3 更新logout函式 162
7.2.4 更安全的cookie 164
7.2.5 完成的(?)函式 166
7.3 Remember Me測試 167
7.3.1 更新後的登錄測試 167
7.3.2 更新後的註銷測試 172
7.4 高級測試:集成測試 173
7.4.1 測試cookie記憶:第 一個片斷 173
7.4.2 對測試代碼進行測試:一個警示 175
7.4.3 對Rails測試的一些反思 177
7.5 再次重構 177
7.5.1 對記住用戶信息的代碼進行重構 178
7.5.2 對忘記用戶信息的代碼進行重構 180
7.5.3 兩點改進 181
7.5.4 徹底重構後的login函式 183
7.5.5 **後需要考慮的問題 185
第8章 更新用戶信息 186
8.1 不僅僅是占位頁面的中心 186
8.2 更新E-mail地址 187
8.3 更新密碼 189
8.4 測試用戶編輯功能 196
8.4.1 測試輔助函式 196
8.4.2 測試編輯頁面 200
8.4.3 高級測試 201
8.5 partials 203
8.5.1 兩個簡單的partial 203
8.5.2 更高級的partial 204
8.5.3 **後一個小錯誤 206
8.5.4 更新登錄和註冊操作 207
第 2部分 創建一個社交網路
第9章 個人配置信息 212
9.1 用戶配置信息占位頁面 213
9.1.1 用戶配置信息頁面的URL 213
9.1.2 Profile控制器和操作 214
9.2 用戶規格描述 216
9.2.1 創建Spec模型 216
9.2.2 Spec模型 218
9.2.3 模型整合 220
9.3 編輯用戶規格 221
9.3.1 Spec規格控制器 221
9.3.2 一個HTML公共工具程式 223
9.3.3 規格描述的編輯視圖 225
9.3.4 保護規格描述的相關頁面 226
9.3.5 測試規格描述功能 227
9.4 更新用戶中心 230
9.4.1 新的hub視圖 231
9.4.2 顯示規格描述信息的方框 234
9.4.3 命名路由和配置信息相關的URL 235
9.4.4 用戶中心的主要內容 237
9.5 個人FAQ:興趣與個性 240
9.5.1 FAQ模型 240
9.5.2 FAQ控制器 243
9.5.3 編輯FAQ 243
9.5.4 將FAQ添加到用戶中心 245
9.5.5 測試FAQ功能 248
9.6 面向公眾的配置信息 249
第 10章 社區 252
10.1 創建一個社區(Community控制器) 252
10.2 創建示例用戶 253
10.2.1 收集數據 253
10.2.2 載入數據 254
10.3 社區索引 256
10.3.1 find操作中的新技巧 257
10.3.2 index操作 259
10.3.3 字典序索引 261
10.3.4 顯示索引結果 263
10.4 對結果進行完善 267
10.4.1 添加分頁功能 267
10.4.2 結果摘要信息 268
第 11章 搜尋與瀏覽 271
11.1 搜尋 271
11.1.1 搜尋視圖 271
11.1.2 Ferret 273
11.1.3 使用find_by_進行搜尋 275
11.1.4 為搜尋頁面添加分頁功能 277
11.1.5 規則的異常 280
11.2 測試搜尋頁面 282
11.3 著手瀏覽功能 284
11.3.1 瀏覽頁面 284
11.3.2 通過A/S/L查找(暫時保留L) 286
11.4 區域、區域、區域 290
11.4.1 本地的地理信息資料庫 290
11.4.2 使用GeoData進行區域搜尋 292
11.4.3 區域名稱 295
11.4.4 添加瀏覽驗證 296
11.4.5 **終的社區主頁 301
第 12章 頭像 303
12.1 為上傳頭像做準備 303
12.1.1 調整一個模型 304
12.1.2 頭像上傳頁面 305
12.1.3 用於頭像功能的partial 308
12.2 維護頭像信息 310
12.2.1 ImageMagick和圖像轉換 310
12.2.2 save方法 313
12.2.3 添加驗證機制 315
12.2.4 刪除頭像 317
12.2.5 測試頭像功能 319
第 13章 E-mail 322
13.1 Action Mailer 322
13.1.1 配置 322
13.1.2 密碼提醒 323
13.1.3 添加提醒連結以及傳送提醒信息 325
13.1.4 測試提醒功能 327
13.2 雙向隱藏的E-mail系統 330
13.2.1 E-mail連結 330
13.2.2 correspond操作和E-mail表單 331
13.2.3 E-mail郵件 334
13.2.4 測試雙向隱藏的E-mail 336
第 14章 交友系統 340
14.1 為交友系統創建數據模型 340
14.1.1 抽象的朋友關係 340
14.1.2 Friendship模型 341
14.1.3 創建未決定的朋友關係 343
14.1.4 朋友關係請求 344
14.1.5 完成Friendship模型 345
14.1.6 測試Friendship模型 346
14.2 朋友關係請求 348
14.2.1 建立朋友關係請求的連結 348
14.2.2 控制請求 350
14.3 管理朋友關係請求 352
14.3.1 has_many :through 352
14.3.2 交友中心 354
14.3.3 Friendship操作 357
14.3.4 測試建立朋友關係的請求 359
第 15章 REST風格的部落格 361
15.1 應該休息(REST)一下了 361
15.1.1 REST和CRUD 362
15.1.2 URL修飾符 364
15.1.3 房間裡的大象:分號 365
15.1.4 應答格式和一個免費的API 366
15.2 用於REST風格的部落格的腳手架 367
15.2.1 第 一個REST風格的資源 367
15.2.2 部落格中的帖子 369
15.2.3 Posts控制器 372
15.3 創建真正的部落格 375
15.3.1 連線到模型 375
15.3.2 部落格和帖子的路由 376
15.3.3 真正的Posts控制器 377
15.3.4 部落格管理 380
15.3.5 創建帖子 381
15.3.6 顯示帖子 383
15.3.7 編輯帖子 386
15.3.8 發表帖子 387
15.3.9 **後一個瑣碎的細節 389
15.4 REST風格的測試 391
15.4.1 默認的REST功能測試 391
15.4.2 兩個自定義測試 393
第 16章 基於AJAX的部落格評論功能 395
16.1 REST風格的評論功能 395
16.1.1 評論資源 395
16.1.2 Comment模型及其關聯 396
16.1.3 Comments控制器和搶先式的partial 398
16.1.4 為評論相關的請求提供路由 399
16.2 進入AJAX 400
16.2.1 新評論 401
16.2.2 創建評論 404
16.2.3 刪除評論 406
16.3 視覺效果 408
16.3.1 RJS檔案和第 一個特效 408
16.3.2 另兩個特效 410
16.3.3 取消按鈕 411
16.3.4 優雅地退而求其次 411
16.4 調試和測試 413
16.4.1 再次審視new 413
16.4.2 基於xhr的AJAX測試 414
第 17章 接下來的操作 416
17.1 部署的考慮點 416
17.1.1 軟體和硬體選項 416
17.1.2 在生產模式中運行 417
17.1.3 **基本的生產伺服器環境 418
17.1.4 伸縮性 420
17.1.5 管理基礎 421
17.2 與Ruby and Rails相關的更多信息 423