圖靈程序設計叢書:Ruby on Rails教程(第4版)
內容描述
《Ruby on Rails 教程 第4版》系統地介紹瞭如何用Rails構建Web應用。具體內容包括:Ruby、Rail、HTML、CSS、數據庫、版本控制、測試以及部署的基本知識。本書大大降低了初學者的門檻,被讀者和很多程序員譽為“Rails入門聖經”。
目錄大綱
第1章從零開始,完成一次部署1
1.1簡介3
1.1.1預備知識3
1.1.2排版約定5
1.2搭建環境6
1.2.1開發環境6
1.2.2安裝Rails9
1.3第一個應用9
1.3.1Bundler12
1.3.2railsserver16
1.3.3模型—視圖—控制器19
1.3.4Hello,world!20
1.4使用Git做版本控制23
1.4.1安裝和設置23
1.4.2使用Git的好處24
1.4.3Bitbucket25
1.4.4分支、編輯、提交、合併28
1.5部署32
1.5.1搭建Heroku部署環境32
1.5. 2Heroku部署第一步34
1.5.3Heroku部署第二步34
1.5.4Heroku命令35
1.6小結35
第2章玩具應用37
2.1規劃應用37
2.1.1User模型40
2.1.2Micropost模型40
2.2Users資源41
2.2.1瀏覽用戶相關的頁面42
2.2.2MVC實戰47
2.2.3Users資源的不足52
2.3Microposts資源52
2.3.1概覽Microposts資源52
2.3.2限制微博的長度56
2.3.3一個用戶擁有多篇微博57
2.3.4繼承體系60
2.3.5部署這個玩具應用62
2.4小結63
第3章基本靜態的頁面65
3.1創建演示應用65
3.2靜態頁面69
3.2.1生成靜態頁面69
3.2.2修改靜態頁面中的內容75
3.3開始測試77
3.3.1第一個測試78
3.3.2遇紅79
3.3.3變綠80
3.3.4重構82
3.4有點動態內容的頁面82
3.4.1測試標題(遇紅)83
3.4.2添加頁面標題(變綠)84
3.4.3佈局和嵌入式Ruby(重構)87
3.4.4設置根路由92
3.5小結94
3.6高級測試技術95
3.6.1MiniTest報告程序95
3.6.2使用Guard自動測試96
第4章Rails背後的Ruby102
4.1導言102
4.1.1內置的輔助方法102
4.1.2自定義輔助方法103
4.2字符串和方法105
4.2.1註釋106
4.2.2字符串107
4.2.3對象和消息傳送109
4.2.4定義方法111
4.2.5回顧標題的輔助方法112
4.3其他數據結構113
4.3.1數組和值域113
4.3.2塊116
4.3.3散列和符號118
4.3.4重溫引入CSS的代碼122
4.4Ruby類123
4.4.1構造方法123
4.4.2類的繼承124
4.4.3修改內置的類126
4.4.4控制器類128
4.4.5User類130
4.5小結131
第5章完善佈局133
5.1添加一些結構133
5.1.1網站導航134
5.1.2Bootstrap和自定義的CSS140
5.1.3局部視圖145
5.2Sass和AssetPipeline150
5.2.1AssetPipeline150
5.2.2句法強大的樣式表151
5.3佈局中的鏈接157
5.3.1”聯繫”頁面158
5.3.2Rails路由159
5.3.3使用具名路由161
5.3.4佈局中鏈接的測試163
5.4用戶註冊:第一步166
5.4.1Users控制器166
5.4.2”註冊”頁面的URL168
5.5小結170
第6章用戶建模172
6.1User模型172
6.1.1數據庫遷移173
6.1.2模型文件177
6.1.3創建用戶對象178
6.1.4查找用戶對象180
6.1 .5更新用戶對象181
6.2驗證用戶數據182
6.2.1有效性測試183
6.2.2存在性驗證184
6.2.3長度驗證187
6.2.4格式驗證188
6.2.5僅有性驗證193
6.3添加安全密碼198
6.3.1計算密碼哈希值199
6.3.2用戶有安全的密碼200
6.3.3密碼的最短長度202
6.3.4創建並驗證用戶的身份203
6.4小結205
第7章註冊207
7.1顯示用戶的信息207
7.1.1調試信息和Rails環境209
7.1.2Users資源212
7.1.3調試器216
7.1.4Gravatar頭像和側邊欄217
7.2註冊表單222
7.2.1使用form_for223
7.2.2註冊表單的HTML225
7.3註冊失敗228
7.3 .1可正常使用的表單229
7.3.2健壯參數231
7.3.3註冊失敗錯誤消息233
7.3.4註冊失敗的測試237
7.4註冊成功240
7.4.1完整的註冊表單241
7.4.2閃現消息242
7.4.3首次註冊244
7.4.4註冊成功的測試246
7.5專業部署方案248
7.5.1在生產環境中使用SSL249
7.5.2生產環境中的Web服務器249
7.5.3部署到生產環境250
7.6小結252
第8章基本登錄功能253
8.1會話253
8.1 .1Sessions控制器254
8.1.2登錄表單256
8.1.3查找並驗證用戶的身份259
8.1.4渲染閃現消息261
8.1.5測試閃現消息263
8.2登錄265
8.2.1log_in方法265
8.2.2當前用戶267
8.2 .3修改佈局中的鏈接270
8.2.4測試佈局中的變化274
8.2.5註冊後直接登錄277
8.3退出279
8.4小結281
第9章高級登錄功能283
9.1記住我283
9.1.1記憶令牌和記憶摘要283
9.1.2登錄時記住登錄狀態288
9.1.3忘記用戶295
9.1.4兩個小問題296
9.2“記住我”複選框300
9.3測試“記住我”功能305
9.3.1測試“記住我”複選框305
9.3.2測試“記住”分支309
9.4小結312
第10章更新、顯示和刪除用戶314
10.1更新用戶314
10.1.1編輯表單314
10.1.2編輯失敗320
10.1.3編輯失敗的測試322
10.1.4編輯成功(使用TDD)323
10.2權限系統326
10.2.1必須先登錄327
10.2.2用戶只能編輯自己的資料331
10.2.3友好的轉向335
10.3列出所有用戶338
10.3.1用戶列表339
10.3.2示例用戶343
10.3.3分頁345
10.3.4用戶列表頁面的測試348
10.3.5使用局部視圖重構350
10.4刪除用戶351
10.4.1管理員352
10.4.2destroy動作355
10.4.3刪除用戶的測試357
10.5小結360
第11章激活賬戶362
11.1AccountActivations資源363
11.1.1AccountActivations控制器363
11.1.2AccountActivations數據模型364
11.2賬戶激活郵件368
11.2.1郵件程序模板368
11.2.2預覽郵件372
11.2.3測試電子郵件375
11.2.4更新Users控制器的create動作377
11.3激活賬戶380
11.3.1通用的authenticated方法380
11.3.2編寫激活賬戶的edit動作383
11.3.3測試和重構386
11.4在生產環境中發送郵件391
11.5小結394
第12章重設密碼395
12.1PasswordResets資源397
12.1.1PasswordResets控制器397
12.1.2請求重設密碼399
12.1.3PasswordResets控制器的create動作402
12.2密碼重設郵件404
12.2.1密碼重設郵件程序和模板404
12.2.2測試電子郵件409
12.3重設密碼410
12.3.1PasswordResets控制器的edit動作410
12.3.2更新密碼412
12.3.3測試密碼重設功能417
12.4在生產環境中發送郵件(再談)421
12.5小結423
12.6證明超時比較算式423
第13章用戶的微博425
13.1Micropost模型425
13.1.1基本模型425
13.1.2Micropost模型的數據驗證427
13.1.3User模型和Micropost模型之間的關聯430
13.1.4改進Micropost模型433
13.2顯示微博436
13.2.1渲染微博437
13.2.2示例微博440
13.2.3測試資料頁面中的微博445
13.3微博相關的操作447
13.3.1訪問限制448
13.3.2創建微博450
13.3.3動態流原型457
13.3.4刪除微博462
13.3.5微博的測試465
13.4微博中的圖像468
13.4.1基本的圖像上傳功能469
13.4.2驗證圖像474
13.4.3調整圖像尺寸476
13.4.4在生產環境中上傳圖像478
13.5小結481
第14章關注用戶484
14.1Relationship模型487
14.1.1數據模型帶來的問題(以及解決方法)487
14.1.2User模型和Relationship模型之間的關聯490
14.1.3關係驗證492
14.1.4我關注的用戶493
14.1.5關注我的人496
14.2關注用戶的Web界面498
14.2.1示例關注數據498
14.2.2數量統計和關注表單499
14.2.3我關注的用戶列表頁面和關注我的用戶列表頁面507
14.2. 4關注按鈕的常規實現方式514
14.2.5關注按鈕的Ajax實現方式517
14.2.6關注功能的測試520
14.3動態流522
14.3.1目的和策略522
14.3.2初步實現動態流524
14.3.3子查詢526
14.4小結530
14.4.1後續學習資源530
14.4.2本章所學531
作者介紹
Michael Hartl,Ruby專家,暢銷書作者,教學網站LearnEnough.com創始人之一。因為對Ruby社區的貢獻,於2011年被授予Ruby Hero獎。畢業於哈佛學院,獲得了加州理工學院物理學博士學位,同時還是Y Combinator創業者項目的畢業生。