注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計網(wǎng)絡(luò)編程Rails之道

Rails之道

Rails之道

定 價:¥89.00

作 者: (美)費爾南德斯 著,Ruby on Rails中文社區(qū) 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 網(wǎng)站開發(fā)

ISBN: 9787115220721 出版時間: 2010-04-01 包裝: 平裝
開本: 16開 頁數(shù): 504 字數(shù):  

內(nèi)容簡介

  《Rails之道》按照Rails的各個子系統(tǒng)進行組織編排,分別介紹了Rails的環(huán)境、初始過程、配置和日志記錄,Rails的分配器、控制器、頁面生成和路由,REST、資源和Rails,ActiveRecord的基礎(chǔ)、關(guān)聯(lián)、驗證和高級技巧,ActionView的模板、緩存和幫助器,Ajax、Prototype和Scriptaculous等JavaScript代碼庫和RJS,Session管理、用戶登錄和認證系統(tǒng),XML和ActiveResource,后臺處理和ActionMaile,測試和specs(包括RSpec on Rails和Selenium),安裝、管理、編寫插件,Rails的生產(chǎn)部署、配置和Capistrano等內(nèi)容?!禦ails之道》詳細討論了Rails的程序代碼并通過分析Rails中的代碼片段來深入解釋它的功能,同時,《Rails之道》部分章節(jié)也摘錄了一些API文檔中的內(nèi)容,使讀者能夠快速地找到對應(yīng)的API文檔、相關(guān)的示例代碼以及深入的解析說明。《Rails之道》是Rails的權(quán)威參考書,適合對Rails已經(jīng)有一定了解的開發(fā)人員學(xué)習(xí)和使用。

作者簡介

  Obie Fernandez是一位廣為人知的技術(shù)行業(yè)領(lǐng)袖和獨立咨詢師。從20世紀80年代獲得第一臺Commodore VIC-20開始,他就一直在從事各種黑客工作。20世紀90年代中期,他終于找到了自己的位置,成為第一代Java企業(yè)項目的編程師。他于1998年移居到美國喬治亞州亞特蘭大市,并作為當?shù)匦屡d企業(yè)MediaOcean的首席架構(gòu)師而聞名。他還成立了Extreme Programming(后改名為Agile Atlanta)用戶社團,并在該社團擔任了幾年的主席和組織人。

圖書目錄

第1章 Rails環(huán)境與配置 1
1.1 啟動 1
1.1.1 默認環(huán)境設(shè)置 1
1.1.2 引導(dǎo) 2
1.1.3 RubyGems 3
1.1.4 初始化 4
1.1.5 默認加載路徑 4
1.1.6 Rails模組及代碼自動加載 5
1.1.7 內(nèi)置的Rails信息 5
1.1.8 配置 6
1.1.9 附加配置 8
1.2 開發(fā)模式 8
1.2.1 類文件自動化重新加載 9
1.2.2 Rails類加載器 9
1.3 測試模式 10
1.4 生產(chǎn)模式 11
1.5 日志器 11
1.5.1 Rails日志文件 12
1.5.2 日志分析 13
1.5.3 Syslog 15
1.6 總結(jié) 15
第2章 運用控制器 16
2.1 調(diào)度器:從這里開始 16
2.1.1 接收請求 17
2.1.2 和調(diào)度器親密接觸 17
2.2 渲染視圖 18
2.2.1 何時開始渲染 19
2.2.2 指定渲染 19
2.2.3 渲染其他動作的模板 19
2.2.4 渲染一個完全不同的模板 20
2.2.5 渲染局部模板 20
2.2.6 渲染內(nèi)聯(lián)模板代碼 21
2.2.7 渲染文本 21
2.2.8 渲染其他類型的數(shù)據(jù)結(jié)構(gòu) 21
2.2.9 什么都不渲染 21
2.2.10 渲染的屬性 22
2.3 重定向 23
2.4 控制器和視圖之間的通信 25
2.5 過濾器 25
2.5.1 過濾器繼承 26
2.5.2 過濾器的類型 27
2.5.3 過濾器的隊列的順序 28
2.5.4 Around過濾器 28
2.5.5 跳過過濾器 29
2.5.6 過濾器條件 29
2.5.7 過濾器掛起 30
2.6 流 30
2.6.1 send_data(data, options = {}) 30
2.6.2 send_file(path, options = {}) 31
2.6.3 讓web服務(wù)器發(fā)送文件 33
2.7 小結(jié) 33
第3章 路由 34
3.1 路由的兩個目的 35
3.2 綁定參數(shù) 35
3.3 使用通配符(“接收器”) 36
3.4 靜態(tài)字符串 37
3.5 route.rb文件 38
3.5.1 默認的路由信息 39
3.5.2 聚焦在:id字段 40
3.5.3 默認的路由生成規(guī)則 40
3.5.4 修改默認的路由信息 41
3.6 默認路由信息之前的信息和respond_to 41
3.7 空的路由信息 42
3.8 編寫自定義路由規(guī)則 43
3.9 使用靜態(tài)字符串 43
3.10 使用你自己的“接收器” 44
3.11 關(guān)于路由次序的說明 45
3.12 在路由信息中使用正則表達式 45
3.13 默認參數(shù)和url_for方法 46
3.14 使用文字化的URL 47
3.15 路由中的通配字段 47
3.16 通配符的鍵——值對 48
3.17 具名路由 48
3.17.1 創(chuàng)建具名路由 49
3.17.2 比較name_path和name_url的使用 49
3.17.3 請考慮 49
3.18 如何命名你的路由 50
3.18.1 參數(shù)糖衣 50
3.18.2 更多糖衣 51
3.19 特殊的范圍方法with_options 51
3.20 小結(jié) 52
第4章 REST,資源和Rails 53
4.1 REST簡介 53
4.2 Rails的REST 54
4.3 路由選擇和CRUD 54
4.4 資源和表現(xiàn) 55
4.4.1 REST資源與Rails 55
4.4.2 從具名路由到REST支持 55
4.4.3 重新認識HTTP方法 56
4.5 標準的REST化的控制器動作 57
4.5.1 模擬PUT和DELETE操作 58
4.5.2 REST化的資源的單數(shù)和復(fù)數(shù) 58
4.5.3 特殊的拍檔:new/create和edit/update 58
4.6 單數(shù)的資源路由 59
4.7 嵌套資源 59
4.7.1 顯式地設(shè)置:path_prefix 60
4.7.2 顯式地設(shè)置:name_prefix 61
4.7.3 顯式地設(shè)置REST化的控制器 61
4.7.4 使用所有選項 62
4.7.5 思考嵌套路由 63
4.7.6 嵌套過深 63
4.8 自定義REST化的路由 64
4.8.1 添加成員路由 65
4.8.2 添加集合路由 65
4.8.3 思考 65
4.9 僅有控制器的資源 67
4.10 資源的不同展現(xiàn)形式 68
4.10.1 respond_to方法 68
4.10.2 格式化具名路由 68
4.11 REST化的Rails動作集合 69
4.11.1 Index 69
4.11.2 Show 71
4.11.3 Destory 71
4.11.4 New和Create 72
4.11.5 Edit和Update 73
4.12 小結(jié) 74
第5章 探究路由選擇 75
5.1 在應(yīng)用程序控制臺檢查路由 75
5.1.1 轉(zhuǎn)存路由信息 75
5.1.2 剖析Route對象 76
5.1.3 在控制臺識別和生成路由 78
5.1.4 控制臺的具名路由 79
5.2 測試路由 80
5.3 Routing Navigator插件 80
5.4 小結(jié) 81
第6章 運用ActiveRecord 82
6.1 基礎(chǔ)知識 82
6.2 數(shù)據(jù)遷移 84
6.2.1 創(chuàng)建遷移 84
6.2.2 用于遷移的API 87
6.2.3 定義列 88
6.3 宏樣式方法 92
6.3.1 關(guān)系聲明 93
6.3.2 約定優(yōu)于配置 93
6.3.3 復(fù)數(shù)化 94
6.3.4 手動設(shè)置名字 95
6.3.5 遺留的命名約定 95
6.4 定義屬性 96
6.4.1 默認屬性值 96
6.4.2 序列化屬性 98
6.5 CRUD:創(chuàng)建、讀取、更新和刪除 98
6.5.1 創(chuàng)建新的ActiveRecord實例 98
6.5.2 讀取ActiveRecord對象 99
6.5.3 讀寫屬性 100
6.5.4 在類型轉(zhuǎn)換之前訪問并且操作屬性 102
6.5.5 重新載入 102
6.5.6 基于屬性的動態(tài)查找器 102
6.5.7 自定義SQL查詢 103
6.5.8 查詢緩存 104
6.5.9 更新 106
6.5.10 基于條件的更新 107
6.5.11 更新特定實例 107
6.5.12 更新特定屬性 107
6.5.13 便利的更新器 108
6.5.14 控制對屬性的訪問 108
6.5.15 刪除和銷毀 109
6.6 數(shù)據(jù)庫鎖定 109
6.6.1 樂觀鎖定 110
6.6.2 悲觀鎖定 111
6.6.3 需要考慮的問題 112
6.7 高級查找 112
6.7.1 條件 112
6.7.2 查詢結(jié)果集的排序 114
6.7.3 限制和偏移量 114
6.7.4 select選項 115
6.7.5 from選項 115
6.7.6 group by選項 115
6.7.7 locking選項 116
6.7.8 連接和包含關(guān)聯(lián) 116
6.7.9 read only 116
6.8 在不同的數(shù)據(jù)模型中連接多個數(shù)據(jù)庫 116
6.9 直接使用數(shù)據(jù)庫連接 117
6.9.1 DatabaseStatements模組 118
6.9.2 其他連接方法 119
6.10 其他配置選項 120
6.11 小結(jié) 121
第7章 ActiveRecord關(guān)聯(lián) 122
7.1 關(guān)聯(lián)的繼承關(guān)系 122
7.2 一對多關(guān)聯(lián) 123
7.2.1 向集合添加已經(jīng)關(guān)聯(lián)的對象 124
7.2.2 AssociationCollection的方法 125
7.3 belongs_to關(guān)聯(lián) 127
7.3.1 重新載入關(guān)聯(lián) 127
7.3.2 通過關(guān)聯(lián)來構(gòu)建(build)或創(chuàng)建(create)相關(guān)對象 128
7.3.3 belongs_to的選項 128
7.4 has_many關(guān)聯(lián) 132
7.4.1 has_many的選項 133
7.4.2 代理方法 137
7.5 多對多關(guān)系 138
7.5.1 has_and_belongs_to_many 138
7.5.2 has_many :through 143
7.5.3 has_many :through的選項 146
7.6 一對一關(guān)系 148
7.6.1 has_one 148
7.6.2 has_one的選項 150
7.7 未保存的對象和關(guān)聯(lián) 151
7.7.1 一對一關(guān)聯(lián) 151
7.7.2 集合 152
7.8 關(guān)聯(lián)的擴展 152
7.9 AssociationProxy類 153
7.10 小結(jié) 154
第8章 ActiveRecord驗證 155
8.1 查找錯誤 155
8.2 簡單的驗證聲明 155
8.2.1 validates_acceptance_of 156
8.2.2 validates_associated 156
8.2.3 validates_confirmation_of 156
8.2.4 validates_each 157
8.2.5 validates_inclusion_of和validates_exclusion_of 157
8.2.6 validates_existence_of 158
8.2.7 validates_format_of 158
8.2.8 validates_length_of 159
8.2.9 validates_numericality_of 159
8.2.10 validates_presence_of 159
8.2.11 validates_uniqueness_of 160
8.2.12 RecordInvalid 161
8.3 通用驗證選項 161
8.3.1 :allow_nil 161
8.3.2 :if 161
8.3.3 :message 161
8.3.4 :on 161
8.4 條件認證 162
8.5 使用Errors對象 163
8.5.1 操作Errors集合 163
8.5.2 Errors的檢查 163
8.6 自定義驗證 164
8.7 跳過驗證 164
8.8 小結(jié) 165
第9章 ActiveRecord的高級技巧 166
9.1 回調(diào)方法 166
9.1.1 注冊回調(diào)方法 167
9.1.2 匹配before/after回調(diào)方法 167
9.1.3 中斷執(zhí)行 168
9.1.4 使用回調(diào)方法 168
9.1.5 特殊的回調(diào)方法:after_initialize和after_find 170
9.1.6 回調(diào)方法類 171
9.2 觀察器 173
9.2.1 命名規(guī)則 173
9.2.2 注冊觀察器 174
9.2.3 時機 174
9.3 單表繼承(single-table inheritance,STI) 174
9.3.1 將繼承映射到數(shù)據(jù)庫 176
9.3.2 STI值得注意的幾點 177
9.3.3 STI和數(shù)據(jù)模型關(guān)聯(lián) 177
9.4 抽象數(shù)據(jù)類型的基類 179
9.5 多態(tài)的has_many關(guān)系 180
9.5.1 假如數(shù)據(jù)模型帶有注釋功能 180
9.5.2 使用has_many的注意事項 182
9.6 用以重用通用行為的模塊 182
9.6.1 回顧類的作用范圍和環(huán)境 184
9.6.2 Include回調(diào)方法 185
9.7 在運行時修改ActiveRecord 186
9.7.1 應(yīng)用時的注意事項 187
9.7.2 Ruby和域指定語言 187
9.8 小結(jié) 188
第10章 ActionView 189
10.1 ERb基礎(chǔ) 189
10.1.1 ERb實踐 189
10.1.2 整理ERb輸出 191
10.1.3 ERb分隔符中的注釋 191
10.1.4 條件輸出 191
10.1.5 RHTML? RXML? RJS? 191
10.2 布局和模板 192
10.2.1 使用Yield生成內(nèi)容 193
10.2.2 模板變量 194
10.2.3 針對用戶提交的數(shù)據(jù)保護你的視圖 196
10.3 局部模板 197
10.3.1 簡單的使用示例 197
10.3.2 重用局部模板 198
10.3.3 共享局部模板 198
10.3.4 給局部模板傳遞變量 199
10.3.5 渲染數(shù)據(jù)集合 200
10.3.6 日志 201
10.4 緩存 201
10.4.1 在開發(fā)模式下的緩存 201
10.4.2 頁面緩存 202
10.4.3 動作緩存 202
10.4.4 片段緩存 203
10.4.5 緩存內(nèi)容的期限 205
10.4.6 使用Sweeper自動過期緩存 206
10.4.7 緩存日志 207
10.4.8 Action Cache插件 208
10.4.9 緩存的存儲 208
10.5 小結(jié) 209
第11章 輔助方法 210
11.1 ActiveRecordHelper 210
11.1.1 報告驗證的錯誤 210
11.1.2 自動創(chuàng)建表單 212
11.1.3 自定義驗證錯誤的高亮方式 213
11.2 AssetTagHelper 214
11.2.1 Head的輔助方法 214
11.2.2 針對插件的輔助方法以設(shè)定默認的JavaScript文件 217
11.3 BenchmarkHelper 217
11.4 CacheHelper 217
11.5 CapturelHelper 218
11.6 DateHelper 218
11.6.1 日期時間選擇 218
11.6.2 單個日期和時間選擇輔助 219
11.6.3 日期選擇輔助方法的通用選項 220
11.6.4 名字復(fù)雜的distance_in_time方法 221
11.7 DebugHelper 222
11.8 FormHelper 222
11.8.1 通過表單創(chuàng)建Active Record模型 222
11.8.2 表單輔助方法是怎樣取值的? 227
11.9 FormOptionsHelpers 228
11.9.1 Select標簽的輔助器 228
11.9.2 Option標簽的輔助器 229
11.10 FormTagHelper 232
11.11 JavaScriptHelper 234
11.12 NumberHelper 235
11.13 PaginationHelper 236
11.13.1 will_paginate 236
11.13.2 paginator 237
11.13.3 Paginating Find 237
11.14 RecordIdentification 237
11.15 RecordTagHelper 239
11.16 TagHelper 239
11.17 TextHelper 240
11.18 UrlHelper 245
11.19 編寫你自己的輔助方法 249
11.19.1 小小的優(yōu)化:Title輔助方法 249
11.19.2 封裝視圖的邏輯:photo_for輔助方法 250
11.19.3 智能視圖:breadcrumbs輔助方法 250
11.20 包裝并生成局部視圖模板 251
11.20.1 一個tiles輔助器 251
11.20.2 生成局部模板 253
11.21 小結(jié) 255
第12章 Ajax on Rails 256
12.1 Prototype 257
12.1.1 FireBug 257
12.1.2 Prototype API 257
12.1.3 頂層函數(shù) 258
12.1.4 類 259
12.1.5 JavaScript的對象類的擴展 259
12.1.6 擴展JavaScript的Array類 260
12.1.7 擴展document對象 261
12.1.8 擴展Event類 261
12.1.9 擴展JavaScript的Function類 263
12.1.10 擴展JavaScript的Nubmer類 263
12.1.11 擴展JavaScript String類 264
12.1.12 Ajax對象 266
12.1.13 Ajax.Responders 266
12.1.14 Enumerable 267
12.1.15 Hash 270
12.1.16 ObjectRange 271
12.1.17 Prototype 對象 271
12.2 PrototypeHelper模組 271
12.2.1 link_to_remote 271
12.2.2 remote_form_for 274
12.2.3 periodically_call_remote 275
12.2.4 observe_field 276
12.2.5 observe_form 277
12.3 RJS——在Ruby中編寫Javascript 277
12.3.1 RJS模板 278
12.3.2 [[(javascript) 279
12.3.3 [](id) 279
12.3.4 alert(message) 279
12.3.5 call(function, *arguments, &block) 279
12.3.6 delay(seconds = 1){ ... } 280
12.3.7 draggable(id, options = {}) 280
12.3.8 drop_receiving(id, options = {}) 280
12.3.9 hide(*ids) 280
12.3.10 insert_html(position, id, *options_for_render) 280
12.3.11 literal(code) 281
12.3.12 redirect_to(location) 281
12.3.13 remove(*ids) 281
12.3.14 replace(id, *options_for_render) 281
12.3.15 replace_html(id, *options_for_render) 281
12.3.16 select(pattern) 281
12.3.17 show(*ids) 281
12.3.18 sortable(id, options = {}) 282
12.3.19 toggle(*ids) 282
12.3.20 visual_effect(name, id = nil, options = {} 282
12.4 JSON 282
12.5 Drag and Drop 283
12.6 Sortable 285
12.7 自動完成 285
12.8 可切換的編輯輸入框 286
12.9 小結(jié) 287
第13章 Session管理 288
13.1 該把什么放在session中 288
13.1.1 當前用戶 288
13.1.2 Session使用規(guī)則 289
13.2 Session屬性 289
13.2.1 針對機器人關(guān)閉session功能 289
13.2.2 選擇性開啟session 290
13.2.3 安全的session 290
13.3 存儲機制 290
13.3.1 ActiveRecord存儲機制 291
13.3.2 PStore(基于文件的方式) 291
13.3.3 DRb Session存儲機制 291
13.3.4 memcach存儲機制 292
13.3.5 關(guān)于CookieStore的爭議 292
13.4 超時機制和session生命周期 293
13.4.1 Session超時插件 294
13.4.2 跟蹤活躍的session 294
13.4.3 增強安全性 295
13.4.4 清除陳舊的session 295
13.5 Cookies 295
13.6 小結(jié) 296
第14章 登錄與認證 297
14.1 Acts as Authenticated 297
14.1.1 安裝與設(shè)置 298
14.1.2 User數(shù)據(jù)模型 298
14.1.3 Account控制器 304
14.1.4 從Cookie中登錄 306
14.1.5 當前用戶 307
14.2 在登錄期間測試 308
14.3 小結(jié) 309
第15章 XML和ActiveResource 310
15.1 to_xml方法 310
15.1.1 定制to_xml輸出 311
15.1.2 to_xml和關(guān)聯(lián)性 312
15.1.3 高級to_xml 313
15.1.4 運行時的動態(tài)屬性 314
15.1.5 重載to_xml 315
15.1.6 由數(shù)組的to_xml方法所學(xué)到的 315
15.2 XML Builder 316
15.3 解析XML 318
15.3.1 將XML轉(zhuǎn)換成散列 318
15.3.2 XmlSimple 319
15.3.3 類型轉(zhuǎn)換 320
15.4 ActiveResource 320
15.4.1 Find 321
15.4.2 Create 322
15.4.3 Update 324
15.4.4 Delete 324
15.4.5 HTTP頭信息 325
15.4.6 自定義 326
15.4.7 散列形式 327
15.5 小結(jié) 327
第16章 ActionMailer 328
16.1 安裝 328
16.2 Mailer模型 328
16.2.1 準備要發(fā)出的郵件消息 329
16.2.2 HTML格式的郵件信息 331
16.2.3 復(fù)合格式的信息 331
16.2.4 文件附件 332
16.2.5 發(fā)送郵件 333
16.3 接收郵件 333
16.3.1 TMail::Mail API參考 334
16.3.2 處理附件 334
16.4 配置 335
16.5 小結(jié) 335
第17章 測試 336
17.1 Rails中測試的專用術(shù)語 337
17.1.1 關(guān)于獨立性… 337
17.1.2 Rails的數(shù)據(jù)模擬 337
17.1.3 真正的數(shù)據(jù)模擬和占位代碼 338
17.1.4 整合測試 339
17.1.5 避免概念混淆 339
17.2 Test::Unit 340
17.3 數(shù)據(jù)裝置 341
17.3.1 CSV格式的數(shù)據(jù)裝置 342
17.3.2 在測試中訪問數(shù)據(jù)裝置中的記錄 342
17.3.3 動態(tài)的數(shù)據(jù)裝置的數(shù)據(jù) 343
17.3.4 在開發(fā)模式下使用數(shù)據(jù)裝置中的數(shù)據(jù) 344
17.3.5 從開發(fā)數(shù)據(jù)中生成數(shù)據(jù)裝置 344
17.3.6 數(shù)據(jù)裝置的選項 345
17.3.7 大家都不喜歡數(shù)據(jù)裝置 345
17.3.8 數(shù)據(jù)裝置其實沒那么糟糕 346
17.4 斷言 347
17.4.1 基本的斷言 347
17.4.2 Rails的斷言 349
17.4.3 一個斷言配一個測試方法 349
17.5 使用單元測試來測試數(shù)據(jù)模型 350
17.5.1 數(shù)據(jù)模型測試基礎(chǔ) 350
17.5.2 決定測試什么 352
17.6 使用功能測試來測試控制器 352
17.6.1 結(jié)構(gòu)和setup 352
17.6.2 功能測試方法 353
17.6.3 通用斷言 353
17.7 使用功能測試來測試視圖 356
17.7.1 測試RJS的行為 359
17.7.2 其他選擇方法 359
17.7.3 測試路由規(guī)則 359
17.8 Rails整合測試 360
17.8.1 基礎(chǔ) 361
17.8.2 整合測試的API 361
17.8.3 使用session 362
17.9 和測試相關(guān)的Rake任務(wù) 362
17.10 驗收測試 362
17.11 Selenium 363
17.11.1 Selenium的基本概念 363
17.11.2 開始使用Selenium 364
17.11.3 RSelenese 365
17.12 小結(jié) 366
第18章 RSpec on Rails 367
18.1 介紹RSpec 367
18.1.1 Should和預(yù)期情況 368
18.1.2 結(jié)果預(yù)測 369
18.1.3 自定義預(yù)期情況匹配器 369
18.1.4 包含多個例子的行為 371
18.1.5 共享的行為 372
18.1.6 RSpec的數(shù)據(jù)模擬和占位代碼 374
18.1.7 運行spec 376
18.1.8 安裝RSpec和RSpec on Rails插件 378
18.2 RSpec on Rails插件 378
18.2.1 代碼生成器 378
18.2.2 數(shù)據(jù)模型spec 378
18.2.3 控制器的spec 380
18.2.4 視圖的spec 383
18.2.5 輔助器的spec 384
18.2.6 Scaffolding 385
18.3 RSpec工具 385
18.3.1 Autotest 385
18.3.2 RCov 385
18.4 小結(jié) 386
第19章 用插件擴展Rails 387
19.1 管理插件 387
19.1.1 重用代碼 387
19.1.2 插件腳本 388
19.1.3 Subversion和script/plugin 391
19.2 使用Piston 392
19.2.1 安裝 392
19.2.2 導(dǎo)入Vendor庫 393
19.2.3 轉(zhuǎn)換現(xiàn)有的Vendor庫 393
19.2.4 更新 394
19.2.5 鎖定和解鎖版本 394
19.2.6 Piston屬性 394
19.3 編寫自己的插件 394
19.3.1 init.rb鉤子 395
19.3.2 lib目錄 396
19.3.3 擴展Rails類 396
19.3.4 README和MIT-LICENSE文件 397
19.3.5 install.rb和uninstall.rb文件 398
19.3.6 自定義Rake任務(wù) 399
19.3.7 插件的Rakefile 399
19.3.8 測試插件 400
19.4 小結(jié) 400
第20章 Rails生產(chǎn)環(huán)境配置 401
20.1 生產(chǎn)環(huán)境Rails的簡史 401
20.2 一些基本的先決條件 402
20.3 軟件集清單 403
20.3.1 服務(wù)器和網(wǎng)絡(luò)環(huán)境 403
20.3.2 Web層 404
20.3.3 應(yīng)用程序?qū)?404
20.3.4 數(shù)據(jù)庫層 404
20.3.5 監(jiān)控 405
20.3.6 版本控制 405
20.4 安裝 405
20.4.1 Ruby 405
20.4.2 RubyGems 405
20.4.3 Rails 406
20.4.4 Mongrel 406
20.4.5 Mongrel Cluster 406
20.4.6 Nginx 406
20.4.7 Subversion 407
20.4.8 MySQL 407
20.4.9 Monit 407
20.4.10 Capistrano 407
20.5 配置 408
20.5.1 配置Mongrel Cluster 408
20.5.2 配置Nginx 408
20.5.3 配置Monit 412
20.5.4 配置Capistrano 414
20.6 配置init腳本 414
20.6.1 Nginx init腳本 414
20.6.2 Mongrel init腳本 415
20.6.3 Monit配置 416
20.7 部署和發(fā)布 418
20.8 有關(guān)生產(chǎn)環(huán)境軟件集的其他注意點 418
20.8.1 冗余和失效轉(zhuǎn)移 418
20.8.2 緩存 418
20.8.3 性能和可擴展性 418
20.8.4 安全 419
20.8.5 可維護性 419
20.9 結(jié)論 419
第21章 Capistrano 421
21.1 Capistrano 概述 421
21.1.1 術(shù)語 421
21.1.2 基礎(chǔ)知識 422
21.1.3 Capistrano做了什么,沒做什么 423
21.2 入門 423
21.2.1 安裝 423
21.2.2 “Capify”你的Rails應(yīng)用程序 423
21.2.3 配置部署 425
21.2.4 一些繭合腳本 425
21.2.5 設(shè)置部署目標服務(wù)器 426
21.2.6 部署! 427
21.3 重載Capistrano的默認假定 427
21.3.1 使用遠程用戶賬號 428
21.3.2 定制Capistrano使用的源代碼管理系統(tǒng)(SCM) 428
21.3.3 部署目標服務(wù)器不能訪問源代碼管理系統(tǒng)(SCM) 428
21.3.4 如果我不把database.yml放在源代碼庫中 428
21.3.5 如果我的數(shù)據(jù)遷移不能從0運行到100 430
21.4 實用的Capistrano策略 431
21.4.1 變量和它們的有效范圍 431
21.4.2 練習(xí)#1:Staging 432
21.4.3 練習(xí)#2:管理其他服務(wù) 434
21.5 多服務(wù)器部署 435
21.6 事務(wù)處理 436
21.7 代理訪問部署目標服務(wù)器 437
21.8 小結(jié) 438
第22章 后臺進程 439
22.1 script/runner 439
22.1.1 入門 440
22.1.2 用法說明 440
22.1.3 script/runner的考慮 441
22.2 DRb 441
22.2.1 一個簡單的DRb服務(wù) 441
22.2.2 在Rails中使用DRb 442
22.2.3 DRb的考慮 442
22.2.4 資源 442
22.3 BackgrounDRb 443
22.3.1 入門 443
22.3.2 配置 443
22.3.3 理解BackgrounDRb 444
22.3.4 使用中間人 444
22.3.5 警告 445
22.3.6 BackGrounDRb的考慮 446
22.4 Daemons 446
22.4.1 用法 446
22.4.2 線程介紹 447
22.4.3 Daemon的考慮 448
22.5 小結(jié) 449
附錄A ActiveSupport API參考 450
附錄B Rails概要 498

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號