第1章 项目创建和原型验证
1.1 Emporium项目介绍
1.2 安装软件
1.2.1 安装Ruby
1.2.2 安装RubyGems
1.2.3 安装Ruby on Rails
1.2.4 安装MySQL
1.2.5 安装MySQL驱动程序
1.3 Scrum介绍
1.4 创建Emporium应用程序
1.4.1 创建应用程序框架
1.4.2 创建Emporium数据库
1.4.3 第一次启动Emporium
1.5 Ruby on Rails工作原理
1.6 实现用户情境:About Emporium
1.6.1 运行生成的脚本
1.6.2 修改生成的视图
1.6.3 创建页面布局
1.6.4 修改生成的控制器
1.7 小结
.第2章 作者管理
2.1 TDD
2.2 在Rails中测试
2.2.1 单元测试
2.2.2 功能测试
2.2.3 集成测试
2.3 创建ActiveRecord模型
2.3.1 使用ActiveRecord迁移
2.3.2 运行单元测试
2.4 创建控制器
2.5 实现用户情境
2.5.1 添加作者
2.5.2 罗列作者
2.5.3 查看作者信息
2.5.4 编辑作者
2.5.5 删除作者
2.5.6 调整闪存提示
2.6 小结
第3章 图书库存管理
3.1 收集需求
3.2 使用脚手架
3.3 实现出版商管理界面
3.3.1 为Publishers表更新数据库架构
3.3.2 用脚手架脚本生成出版商代码
3.3.3 完成用户情境:添加出版商
3.3.4 完成用户情境:查看出版商
3.3.5 完成用户情境:编辑出版商
3.4 实现图书管理界面
3.4.1 使用Books表更新数据库架构
3.4.2 创建图书模型
3.4.3 ActiveRecord映射
3.4.4 修改生成的模型
3.4.5 克隆数据库
3.4.6 单元测试所有验证
3.4.7 单元测试ActiveRecord映射
3.4.8 用脚手架脚本生成图书管理代码
3.4.9 集成测试
3.4.10 完成用户情境:添加图书
3.4.11 完成用户情境:上传图书封面
3.4.12 完成用户情境:罗列图书
3.4.13 完成用户情境:查看图书
3.4.14 完成用户情境:编辑图书
3.4.15 测试用户情境:删除图书
3.5 小结
第4章 浏览图书目录
4.1 收集图书目录需求
4.2 实现图书目录界面
4.2.1 实现用户情境:浏览图书目录
4.2.2 实现用户情境:查看图书详情
4.2.3 实现用户情境:搜索图书
4.2.4 实现用户情境:获取最新书目
4.2.5 创建RSS提要
4.3 小结
第5章 实现购物车
5.1 收集购物车需求
5.2 建立购物车
5.2.1 创建控制器
5.2.2 添加功能测试
5.2.3 创建模型
5.2.4 修改控制器
5.2.5 创建视图
5.3 实现用户情境
5.3.1 实现用户情境:向购物车添加商品
5.3.2 实现用户情景:从购物车中移除商品
5.3.3 实现用户情境:清空购物车
5.4 小结
第6章 实现论坛
6.1 收集论坛需求
6.2 使用线索化论坛插件
6.3 建立论坛
6.3.1 更新数据库架构
6.3.2 修改模型
6.3.3 单元测试模型
6.3.4 生成控制器和视图
6.4 实现用户情境
6.4.1 实现用户情境:发帖
6.4.2 实现用户情境:浏览论坛
6.4.3 实现用户情境:看帖
6.4.4 实现用户情境:回帖
6.5 小结
第7章 标签支持
7.1 收集贴标签的需求
7.2 使用标签RubyGem
7.3 建立标签机制
7.3.1 更新数据库架构
7.3.2 准备模型
7.3.3 模型单元测试
7.3.4 用控制台测试模型
7.4 实现用户情境
7.4.1 实现用户情境:贴标签
7.4.2 实现用户情境:编辑标签
7.4.3 实现用户情境:罗列标签和显示标签
7.4.4 实现用户情境:推荐图书
7.5 小结
第8章 安全
8.1 收集身份认证需求
8.2 使用身份认证插件
8.3 实现用户情境
8.3.1 实现用户情境:登录
8.3.2 实现用户情境:登录失败
8.3.3 实现用户情境:重设密码
8.4 保护应用程序
8.4.1 跨站脚本攻击
8.4.2 URL和表单处理
8.4.3 SQL注入
8.4.4 跨站请求伪造
8.5 小结
第9章 结账与订单处理
9.1 收集结账与订单处理需求
9.2 实现用户情境:结账
9.2.1 创建模型
9.2.2 为模型添加验证
9.2.3 创建控制器和集成测试
9.2.4 创建视图
9.2.5 保存订单信息
9.3 集成支付网关
9.3.1 安装Active Merchant插件
9.3.2 PayPal集成
9.3.3 Authorize.Net集成
9.3.4 使用Payment gem
9.4 实现管理员用户情境
9.4.1 实现用户情境:查看订单列表
9.4.2 实现用户情境:查看订单
9.4.3 实现用户情境:终止订单
9.5 计算配送费用和税费
9.5.1 使用Shipping Gem
9.5.2 计算税费
9.6 小结
第10章 多语言支持
10.1 收集本地化需求
10.2 使用Globalize插件
10.2.1 用Globalize本地化
10.2.2 建立Globalize
10.3 实现用户情境
10.3.1 实现用户情境:改变地区设置
10.3.2 实现翻译用户情境
10.4 翻译视图和Book模型
10.4.1 翻译视图
10.4.2 翻译模型
10.5 本地化日期、数字和货币
10.5.1 本地化日期
10.5.2 本地化数字和货币
10.6 添加Unicode(UTF-8)支持
10.6.1 在HTML中设置字符编码
10.6.2 为HTTP响应设置字符编码
10.6.3 修改数据库以便使用UTF-8
10.7 小结
第11章 验收测试
11.1 使用Selenium
11.2 写Selenium测试
11.2.1 Selenium命令
11.2.2 Selenium测试格式
11.2.3 第一个验收测试
11.3 录制Selenium测试
11.3.1 使用Selenium IDE
11.3.2 录制查看论坛验收测试
11.3.3 录制发帖验收测试
11.3.4 录制看帖验收测试
11.3.5 录制回帖验收测试
11.4 小结
第12章 应用程序部署
12.1 建立产品环境
12.1.1 连接产品服务器:SSH
12.1.2 安装Web服务器:LightTPD
12.1.3 安装应用程序服务器:Ruby on Rails和FastCGI
12.1.4 安装数据库服务器(MySQL)
12.1.5 配置LightTPD
12.1.6 创建产品数据库
12.2 手工部署应用程序
12.2.1 复制应用程序
12.2.2 创建用户和组
12.2.3 启动LightTPD
12.2.4 启动FastCGI进程
12.3 自动化部署
12.3.1 安装Capistrano
12.3.2 创建Capistrano部署配方
12.3.3 运行Setup任务
12.3.4 部署到产品
12.3.5 启动LightTPD
12.4 小结
第13章 性能优化
13.1 性能和延展
13.2 衡量性能
13.2.1 查看日志文件
13.2.2 使用Rails分析器
13.3 缓存
13.3.1 页面缓存
13.3.2 动作缓存
13.3.3 片段缓存
13.3.4 片段存储
13.3.5 缓存ActiveRecord对象
13.4 Rails中常见的性能问题
13.4.1 呈现速度
13.4.2 数据库访问
13.5 小结