第1章 简介 1
1.1 Rails是敏捷的 3
1.2 读你所需 4
1.3 致谢 6
第1部分 起步 9
第2章 Rails应用的架构 11
2.1 模型,视图,以及控制器 11
2.2 Active Record:Rails的模型支持 15
2.3 Action Pack:视图与控制器 19
3.1 Windows上的安装 21
第3章 安装Rails 21
3.2 Mac OS X上的安装 22
3.3 Unix/Linux上的安装 22
3.4 Rails和数据库 23
3.5 保持更新 26
3.6 Rails与ISP 26
第4章 立竿见影 27
4.1 新建一个应用程序 27
4.2 Hello,Rails 29
4.3 把页面连起来 39
4.4 我们做了什么 43
第2部分 构建应用程序 45
第5章 Depot应用程序 47
5.1 增量式开发 47
5.2 Depot做些什么 48
5.3 让我们编码吧 52
第6章 任务A:货品维护 53
6.1 迭代A1:跑起来再说 53
6.2 迭代A2:添加缺失的字段 61
6.3 迭代A3:检查一下 64
6.4 迭代A4:更美观的列表页 67
7.1 迭代B1:创建分类列表 71
第7章 任务B:分类显示 71
7.2 迭代B2:添加页面装饰 74
第8章 任务C:创建购物车 79
8.1 Sessions 79
8.2 更多的表,更多的模型 81
8.3 迭代C1:创建购物车 83
8.4 迭代C2:处理错误 91
8.5 迭代C3:完成购物车 95
第9章 任务D:结账 101
9.1 迭代D1:获得订单 102
9.2 迭代D2:在付账页面显示购物车内容 110
第10章 任务E:发货 115
10.1 迭代E1:基本的发货功能 115
第11章 任务F:管理 125
11.1 迭代F1:添加用户 125
11.2 迭代F2:登录 130
11.3 迭代F3:访问控制 132
11.4 扫尾 136
11.5 蛋糕上加点奶油 137
第12章 任务T:测试 139
12.1 加上测试 139
12.2 模型的测试 140
12.3 控制器的测试 155
12.4 使用Mock对象 168
12.5 测试驱动开发 169
12.6 用Rake运行测试 172
12.7 性能测试 175
第3部分 Rails框架 179
第13章 深入Rails 181
13.1 Rails在哪儿 181
13.2 目录结构 181
13.3 Rails配置 185
13.4 命名约定 188
13.5 Active Support 192
13.6 Rails的日志 194
13.7 调试信息 194
13.8 精彩预告 196
第14章 ActiveRecord基础 199
14.1 表和类 200
14.2 字段和属性 201
14.3 主键与ID 206
14.4 连接数据库 208
14.5 CRUD 210
14.6 表间关联 225
14.7 事务 246
第15章 再论ActiveRecord 253
15.1 Acts As 253
15.2 聚合 257
15.3 单表继承 263
15.4 校验 266
15.5 回调 274
15.6 高级属性 282
15.7 杂录 285
16.1 环境与依赖 289
第16章 ActionController与Rails 289
16.2 基础 290
16.3 请求的路由 291
16.4 Action方法 302
16.5 Cookie和Session 312
16.6 Flash——Action之间的通信 322
16.7 过滤器与校验 324
16.8 缓存初接触 329
16.9 GET请求的问题 335
第17章 ActionView 339
17.1 模板 339
17.2 Builder模板 341
17.3 RHTML模板 342
17.4 辅助方法 344
17.5 格式化辅助方法 347
17.6 链接到别的页面或资源 349
17.7 分页 352
17.8 表单辅助方法 353
17.9 布局与组件 368
17.10 再论缓存 378
17.11 新增模板系统 382
18.1 AJAX简介 385
第18章 Web 2.0 385
18.2 Rails的做法 388
18.3 再论用户界面 396
18.4 高级技巧 401
第19章 ActionMailer 411
19.1 发送邮件 411
19.2 接收邮件 418
19.3 电子邮件的测试 420
第20章 Web Service与Rails 423
20.1 AWS是什么(以及不是什么) 423
20.2 API定义 424
20.3 分发模式 429
20.4 使用别的分发机制 432
20.5 拦截方法调用 433
20.6 Web Service的测试 435
20.7 协议客户端 437
第21章 保护Rails应用 439
21.1 SQL注入 439
21.2 跨站点脚本(CSS/XSS) 442
21.3 防御session定置攻击 445
21.4 Creating Records Directly from Form Parameters 446
21.5 不要相信ID参数 447
21.6 不要暴露控制器方法 448
21.7 文件上传 450
21.8 不要缓存需要身份认证的页面 450
21.9 知己知彼 451
第22章 部署与伸缩 453
22.1 选择发布平台 453
22.2 运行环境的三位一体 461
22.3 荒野中的迭代 463
22.4 维护 467
22.5 伸缩:无共享架构 469
22.6 寻找并解决性能瓶颈 472
22.7 案例分析:每天运行的Rails 476
第4部分 附录 479
附录A Ruby简介 481
A.1 Ruby是一种面向对象的语言 481
A.2 Ruby中的名称 482
A.3 方法 483
A.4 类 485
A.5 模块 487
A.6 数组与hash 488
A.7 控制结构 489
A.8 正则表达式 490
A.9 代码块与迭代器 490
A.10 异常 491
A.11 对象序列化 492
A.12 交互式的Ruby 492
A.13 Ruby惯用法 493
A.14 RDoc文档 494
附录B 配置参数 497
B.1 ActiveRecord配置 497
B.2 ActionPack配置 498
B.3 ActionMailer配置 500
B.4 TestCase配置 500
附录C 源代码 501
C.1 完整的Depot应用 501
C.2 系统提示程序范例 526
C.3 代码示例交叉引用 527
附录D 资源 531
D.1 Online Resources 531
D.2 推荐书目 531
索引 533