第1章 Rails框架概述 1
1.1 Ruby语言的概述 2
1.1.1 Ruby语言及其发展过程 2
1.1.2 Ruby语言的软件开发优势 2
1.2 Rails框架的历史和现在 3
1.2.1 Rails框架的发展过程 3
1.2.2 Rails框架2.0的主要特性 4
1.2.3 Rails框架开发者的创新理念 9
1.3 Rails框架及其插件Plugins和软件包Gem 10
1.3.1 什么是插件Plugins 10
1.3.2 什么是软件包Gem 11
1.3.3 Rails框架的重要Plugins和Gem及其应用技术 11
1.4 Rails框架的未来 12
1.4.1 Rails框架2.1.x以后版本的重要特性 12
1.4.2 Rails框架未来发展趋势 15
1.4.3 介绍在虚拟机上的Rails框架 16
第2章 用户管理 19
2.1 系统环境 20
2.2 预备知识 20
2.2.1 用RSpec进行BDD开发 20
2.2.2 Rails 2.0 21
2.2.3 make_resourceful 21
2.2.4 HAML模板语言 23
2.2.5 插入代码 24
2.2.6 用户故事 25
2.3 使用Restful Authentication Generator 26
2.4 构建初始项目 27
2.5 使用TDD开发User模型 27
2.5.1 User模型的Fixtures 27
2.5.2 Model的开发 28
2.5.3 密码验证 32
2.6 用户注册 33
2.6.1 删除默认Route 34
2.6.2 创建Controller 34
2.6.3 使用TDD开发Controller 34
2.7 用户登录 39
2.8 访问控制 41
2.9 Remember me的实现 43
2.10 邮件激活 45
2.10.1 Model的开发 45
2.10.2 发送激活邮件 46
2.10.3 编写Controller 48
2.11 密码重设 48
2.11.1 修改Model 49
2.11.2 发送邮件 49
2.11.3 编写Controller和View 51
2.12 小结 53
第3章 内容展示 55
3.1 定制form及form控件 56
3.2 定制table及table的分页、排序 59
3.3 生成多种格式的report 63
3.4 富文本编辑器 66
3.4.1 TinyMCE 66
3.4.2 FCKEditor 70
3.5 丰富的UI组件 73
3.5.1 In Place Edit 73
3.5.2 Snap Shots与iTechTag 75
3.5.3 Mp3 Player、Image SlideShow、Flash Player 76
3.6 Multi Model的表单 79
3.7 小结 84
第4章 缓存 85
4.1 内建的Cache机制 86
4.1.1 页面缓存Page Cache 87
4.1.2 Action Cache 93
4.1.3 Fragment Cache 95
4.1.4 Query Cache 98
4.1.5 缓存文件的存储方式 99
4.1.6 静态文件缓存 99
4.2 Memcached及在Rails中的应用 100
4.2.1 Ruby与Memcached 101
4.2.2 Rails中使用Cached_model 102
4.2.3 cache_fu 104
4.2.4 Nginx与Memcached 107
4.3 MySQL Query Cache 108
4.4 小结 111
第5章 上传文件和图片处理 113
5.1 attachment_fu安装 114
5.2 RMagick安装 114
5.3 数据库定义 115
5.4 Model的开发 116
5.5 Controller和View的开发 117
5.5.1 文件上传表单 118
5.5.2 显示上传图片 121
5.6 生成副本 122
5.6.1 添加thumbnails参数 122
5.6.2 使用RMagick编写副本生成 124
5.7 Ajax方式上传文件 125
5.7.1 让Controller更加苗条 127
5.8 小结 127
第6章 搜索 129
6.1 基本搜索 130
6.2 全文搜索 132
6.2.1 acts_as_ferret 133
6.2.2 acts_as_sphinx 136
6.2.3 acts_as_solr 141
6.2.4 acts_as_searchable 145
6.2.5 acts_as_fulltextable 148
6.3 与第三方服务集成的搜索 151
6.4 搜索提示 154
6.5 渐增式搜索 157
6.6 小结 158
第7章 RSS与Trackback 159
7.1 什么是RSS 160
7.2 如何生成RSS 164
7.3 如何解析RSS 171
7.4 什么是Trackback 173
7.5 如何实现Trackback 173
7.6 小结 175
第8章 地图服务 177
8.1 地图服务及成功站点示例 178
8.1.1 Google Maps地图服务 178
8.1.2 Google Maps影像组织方式 179
8.1.3 站点示例 180
8.2 Google Maps API 183
8.2.1 Google Maps API概述 183
8.2.2 通过API Key调用Google Maps地图数据 183
8.2.3 Google Maps中使用KML 184
8.2.4 Google Maps静态地图 185
8.3 地图服务提供商 186
8.3.1 微软Live地图 186
8.3.2 Yahoo!地图及Fire Eagle应用 188
8.4 Google Maps与谷歌地图的集成 190
8.5 地图浏览控制 192
8.5.1 GMap2对象和基本方法 192
8.5.2 常用地图操作方法 193
8.5.3 为用户事件添加响应处理 195
8.6 在Rails应用中嵌入地图 196
8.6.1 Rails地图应用任务描述 196
8.6.2 Rails地图插件 197
8.6.3 创建Rails应用程序与数据模型 198
8.6.4 安装测试Rails插件 201
8.6.5 自动地址译码 203
8.6.6 IP地址译码 204
8.7 通过Rails将地图与业务数据关联 205
8.7.1 创建location控制器 205
8.7.2 增加新的字段 206
8.7.3 配置Cartographer插件 207
8.7.4 控制器 207
8.7.5 进一步的功能 211
8.8 定义自己的地图浏览客户端 212
8.8.1 OpenLayers概述 212
8.8.2 OpenLayers中使用Google数据 214
8.9 小结 218
第9章 Mashup 219
9.1 Mashup成功站点示例 220
9.1.1 Mashup概述 220
9.1.2 站点示例 220
9.1.3 Mashup组织模式 223
9.2 常见API使用方式 223
9.2.1 Google Ajax Search API 223
9.2.2 Google Mashup编辑器 225
9.2.3 Flickr 226
9.2.4 Snap Shots 227
9.3 Ruby的Mashup资源 228
9.4 快速上手示例 229
9.4.1 YouTube视频Mashup 229
9.4.2 Rails的Mashup应用任务描述 231
9.4.3 安装测试YouTube的Rails插件 232
9.4.4 创建新的Mashup应用项目 235
9.5 开放API平台 240
9.5.1 开放的API平台 240
9.5.2 开放API实现技术简介 242
9.6 小结 248
第10章 部署演练 249
10.1 部署思路和原则 250
10.1.1 认识与思考 250
10.1.2 流行过的趋势 250
10.1.3 部署与安装:误区雷区 251
10.1.4 原则要素 252
10.2 动手实验准备 253
10.2.1 技术选择 253
10.2.2 部署工具 255
10.3 部署初体验 256
10.3.1 将Webrick送到生产环境 256
10.3.2 自动工具Capistrano+Apache前端Fcgi+Mysql 258
10.3.3 Cap+Apache proxy+mongrel 261
10.3.4 Apache+mod_rails 264
10.4 不拘一格的部署新思维 267
10.4.1 JRuby环境的Rails简易部署 267
10.4.2 IIS 7 fcgi+SQL server 277
10.4.3 Linux集成生产环境比对分析 282
10.4.4 打包Rails成为exe直接给客户做产品原型演示 285
10.4.5 虚拟机技术和负载均衡 291
10.4.6 Heroku直接在网上给Rails安家 295
10.4.7 Nginx+mongre自动化部署,手动安装及性能扩展 298
10.5 部署后的监控调优和治理活动 304
10.6 小结 305