标题：Ruby on Rails电子商务实战
图书信息
书名： Ruby on Rails电子商务实战  　　书号： 978-7-115-17449-9  
原书名： Beginning Ruby on Rails E-Commerce  
原出版社： Apress  
作者： Christian Hellsten, Jarkko Laine  
译者： 曹维远  
出版日期： 2008-02-27  
语种： 简体中文  
开本： 16开  
页数： 344
摘要
本书适合开发实际Rails应用的Web开发人员阅读。
目录
第1章 项目创建和原型验证        1
1.1 Emporium项目介绍        1
1.2 安装软件        2
1.2.1 安装Ruby        3
1.2.2 安装RubyGems        4
1.2.3 安装Ruby on Rails        5
1.2.4 安装MySQL        6
1.2.5 安装MySQL驱动程序        8
1.3 Scrum介绍        9
1.4 创建Emporium应用程序        10
1.4.1 创建应用程序框架        10
1.4.2 创建Emporium数据库        12
1.4.3 第一次启动Emporium        15
1.5 Ruby on Rails工作原理        16
1.6 实现用户情境：About Emporium        17
1.6.1 运行生成的脚本        17
1.6.2 修改生成的视图        18
1.6.3 创建页面布局        19
1.6.4 修改生成的控制器        23
1.7 小结        24
第2章 作者管理        25
2.1 TDD        25
2.2 在Rails中测试        26
2.2.1 单元测试        26
2.2.2 功能测试        26
2.2.3 集成测试        27
2.3 创建ActiveRecord模型        27
2.3.1 使用ActiveRecord迁移        27
2.3.2 运行单元测试        30
2.4 创建控制器        31
2.5 实现用户情境        32
2.5.1 添加作者        33
2.5.2 罗列作者        40
2.5.3 查看作者信息        42
2.5.4 编辑作者        44
2.5.5 删除作者        45
2.5.6 调整闪存提示        46
2.6 小结        48
第3章 图书库存管理        49
3.1 收集需求        49
3.2 使用脚手架        50
3.3 实现出版商管理界面        50
3.3.1 为Publishers表更新数据库架构        51
3.3.2 用脚手架脚本生成出版商代码        52
3.3.3 完成用户情境：添加出版商        53
3.3.4 完成用户情境：查看出版商        55
3.3.5 完成用户情境：编辑出版商        56
3.4 实现图书管理界面        57
3.4.1 使用Books表更新数据库架构        57
3.4.2 创建图书模型        60
3.4.3 ActiveRecord映射        61
3.4.4 修改生成的模型        64
3.4.5 克隆数据库        66
3.4.6 单元测试所有验证        67
3.4.7 单元测试ActiveRecord映射        68
3.4.8 用脚手架脚本生成图书管理代码        73
3.4.9 集成测试        74
3.4.10 完成用户情境：添加图书        75
3.4.11 完成用户情境：上传图书封面        83
3.4.12 完成用户情境：罗列图书        85
3.4.13 完成用户情境：查看图书        87
3.4.14 完成用户情境：编辑图书        90
3.4.15 测试用户情境：删除图书        91
3.5 小结        92
第4章 浏览图书目录        93
4.1 收集图书目录需求        93
4.2 实现图书目录界面        94
4.2.1 实现用户情境：浏览图书目录        95
4.2.2 实现用户情境：查看图书详情        98
4.2.3 实现用户情境：搜索图书        103
4.2.4 实现用户情境：获取最新书目        110
4.2.5 创建RSS提要        112
4.3 小结        114
第5章 实现购物车        116
5.1 收集购物车需求        116
5.2 建立购物车        116
5.2.1 创建控制器        117
5.2.2 添加功能测试        117
5.2.3 创建模型        117
5.2.4 修改控制器        119
5.2.5 创建视图        122
5.3 实现用户情境        126
5.3.1 实现用户情境：向购物车添加商品        126
5.3.2 实现用户情景：从购物车中移除商品        133
5.3.3 实现用户情境：清空购物车        137
5.4 小结        139
第6章 实现论坛        140
6.1 收集论坛需求        140
6.2 使用线索化论坛插件        141
6.3 建立论坛        142
6.3.1 更新数据库架构        142
6.3.2 修改模型        144
6.3.3 单元测试模型        145
6.3.4 生成控制器和视图        146
6.4 实现用户情境        147
6.4.1 实现用户情境：发帖        148
6.4.2 实现用户情境：浏览论坛        152
6.4.3 实现用户情境：看帖        156
6.4.4 实现用户情境：回帖        159
6.5 小结        161
第7章 标签支持        162
7.1 收集贴标签的需求        162
7.2 使用标签RubyGem        163
7.3 建立标签机制        164
7.3.1 更新数据库架构        165
7.3.2 准备模型        167
7.3.3 模型单元测试        167
7.3.4 用控制台测试模型        168
7.4 实现用户情境        169
7.4.1 实现用户情境：贴标签        170
7.4.2 实现用户情境：编辑标签        173
7.4.3 实现用户情境：罗列标签和显示标签        176
7.4.4 实现用户情境：推荐图书        179
7.5 小结        181
第8章 安全        182
8.1 收集身份认证需求        182
8.2 使用身份认证插件        182
8.3 实现用户情境        185
8.3.1 实现用户情境：登录        185
8.3.2 实现用户情境：登录失败        190
8.3.3 实现用户情境：重设密码        194
8.4 保护应用程序        202
8.4.1 跨站脚本攻击        202
8.4.2 URL和表单处理        203
8.4.3 SQL注入        204
8.4.4 跨站请求伪造        204
8.5 小结        205
第9章 结账与订单处理        206
9.1 收集结账与订单处理需求        206
9.2 实现用户情境：结账        206
9.2.1 创建模型        207
9.2.2 为模型添加验证        211
9.2.3 创建控制器和集成测试        213
9.2.4 创建视图        215
9.2.5 保存订单信息        220
9.3 集成支付网关        223
9.3.1 安装Active Merchant插件        223
9.3.2 PayPal集成        224
9.3.3 Authorize集成        230
9.3.4 使用Payment gem        233
9.4 实现管理员用户情境        234
9.4.1 实现用户情境：查看订单列表        235
9.4.2 实现用户情境：查看订单        237
9.4.3 实现用户情境：终止订单        239
9.5 计算配送费用和税费        241
9.5.1 使用Shipping Gem        241
9.5.2 计算税费        242
9.6 小结        242
第10章 多语言支持        243
10.1 收集本地化需求        243
10.2 使用Globalize插件        244
10.2.1 用Globalize本地化        245
10.2.2 建立Globalize        248
10.3 实现用户情境        248
10.3.1 实现用户情境：改变地区设置        248
10.3.2 实现翻译用户情境        250
10.4 翻译视图和Book模型        256
10.4.1 翻译视图        256
10.4.2 翻译模型        259
10.5 本地化日期、数字和货币        260
10.5.1 本地化日期        260
10.5.2 本地化数字和货币        262
10.6 添加Unicode（UTF-8）支持        263
10.6.1 在HTML中设置字符编码        263
10.6.2 为HTTP响应设置字符编码        264
10.6.3 修改数据库以便使用UTF-8        265
10.7 小结        266
第11章 验收测试        267
11.1 使用Selenium        267
11.2 写Selenium测试        269
11.2.1 Selenium命令        269
11.2.2 Selenium测试格式        272
11.2.3 第一个验收测试        273
11.3 录制Selenium测试        274
11.3.1 使用Selenium IDE        274
11.3.2 录制查看论坛验收测试        276
11.3.3 录制发帖验收测试        281
11.3.4 录制看帖验收测试        282
11.3.5 录制回帖验收测试        283
11.4 小结        285
第12章 应用程序部署        286
12.1 建立产品环境        286
12.1.1 连接产品服务器：SSH        287
12.1.2 安装Web服务器：LightTPD        287
12.1.3 安装应用程序服务器：Ruby on Rails和FastCGI        289
12.1.4 安装数据库服务器（MySQL）        291
12.1.5 配置LightTPD        291
12.1.6 创建产品数据库        297
12.2 手工部署应用程序        298
12.2.1 复制应用程序        298
12.2.2 创建用户和组        299
12.2.3 启动LightTPD        300
12.2.4 启动FastCGI进程        300
12.3 自动化部署        302
12.3.1 安装Capistrano        302
12.3.2 创建Capistrano部署配方        302
12.3.3 运行Setup任务        305
12.3.4 部署到产品        306
12.3.5 启动LightTPD        309
12.4 小结        310
第13章 性能优化        311
13.1 性能和延展        311
13.2 衡量性能        312
13.2.1 查看日志文件        312
13.2.2 使用Rails分析器        313
13.3 缓存        317
13.3.1 页面缓存        318
13.3.2 动作缓存        319
13.3.3 片段缓存        319
13.3.4 片段存储        321
13.3.5 缓存ActiveRecord对象        323
13.4 Rails中常见的性能问题        325
13.4.1 呈现速度        325
13.4.2 数据库访问        327
13.5 小结        329