第1章 简介
1.1 RAILS是敏捷的
1.2 读你所需
1.3 致谢
第1部分 起步
第2章 RAILS应用的架构
2.1 模型,视图,以及控制器
2.2 ACTIVE RECORD:RAILS的模型支持
2.3 ACTION PACK:视图与控制器
第3章 安装RAILS
3.1 购物清单
3.2 WINDOWS上的安装
3.3 MAC OS X上的安装
3.4 LINUX上的安装
3.5 选择RAILS版本
3.6 开发环境
3.7 RAILS和数据库
3.8 保持更新
3.9 RAILS和ISPS
第4章 立竿见影
4.1 新建一个应用程序
4.2 HELLO, RAILS
4.3 把页面连起来
4.4 我们做了什么
第2部分 构建应用程序
第5章 DEPOT应用程序
5.1 增量式开发
5.2 DEPOT做些什么
5.3 让我们编码吧
第6章 任务A:货品维护
6.1 迭代A1:跑起来再说
6.2 创建货品模型和维护应用
6.3 迭代A2:添加缺失的字段
6.4 迭代A3:检查一下
6.5 迭代A4:更美观的列表页
第7章 任务B:目录显示
7.1 迭代B1:创建目录列表
7.2 迭代B2:添加页面布局
7.3 迭代B3:用辅助方法格式化价格
7.4 迭代B4:链接到购物车
第8章 任务C:创建购物车
8.1 SESSION
8.2 迭代C1:创建购物车
8.3 迭代C2:创建一个更聪明的购物车
8.4 迭代C3:处理错误
8.5 迭代C4:结束购物车
第9章 任务D:AJAX初体验
9.1 迭代D1:迁移购物车
9.2 迭代D2:创建基于AJAX的购物车
9.3 迭代D3:高亮显示变化
9.4 迭代D4:隐藏空购物车
9.5 迭代D5:JAVASCRIPT被禁用时的对策
9.6 我们做了什么
第10章 任务E:付账
10.1 迭代E1:收集订单信息
第11章 任务F:管理
11.1 迭代F1:添加用户
11.2 迭代F2:登录
11.3 迭代F3:访问控制
11.4 迭代F4:添加边栏,以及更多的管理功能
第12章 任务G:最后一片饼干
12.1 生成XML
12.2 扫尾工作
第13章 任务I:国际化
13.1 迭代I1:翻译
13.2 迭代I2:探索内容的翻译策略
第14章 任务T:测试
14.1 加上测试
14.2 模型的单元测试
14.3 控制器的功能测试
14.4 应用程序的集成测试
14.5 性能测试
14.6 使用MOCK对象
第3部分 RAILS框架
第15章 深入RAILS
15.1 RAILS在哪儿
15.2 目录结构
15.3 RAILS配置
15.4 命名约定
15.5 RAILS的日志
15.6 调试信息
15.7 精彩预告
第16章 ACTIVE SUPPORT
16.1 通用扩展
16.2 枚举和数组
16.3 HASH
16.4 字符串扩展
16.5 数值的扩展
16.6 时间和日期的扩展
16.7 RUBY符号的扩展
16.8 WITH_OPTIONS
16.9 UNICODE支持
第17章 数据迁移
17.1 创建和运行迁移任务
17.2 剖析迁移任务
17.3 表的管理
17.4 数据迁移任务
17.5 高级迁移任务
17.6 迁移任务的缺点
17.7 在迁移任务之外操作数据库结构
17.8 管理迁移任务
第18章 ACTIVERECORD第一部分:基础
18.1 表和类
18.2 字段和属性
18.3 主键与ID
18.4 连接数据库
18.5 CRUD
18.6 聚合与结构化数据
18.7 杂录
第19章 ACTIVERECORD第二部分:表间关联
19.1 创建外键
19.2 在模型对象中指定关联
19.3 BELONGS_TO和HAS_XXX声明
19.4 连接多张表
19.5 自引用的连接
19.6 ACTS AS
19.7 何时保存
19.8 预先读取子记录
19.9 计数器
第20章 ACTIVERECORD第三部分:对象生命周期
20.1 校验
20.2 回调
20.3 高级属性
20.4 事务
第21章 ACTIONCONTROLLER:路由与URL
21.1 基础
21.2 请求的路由
21.3 基于资源的路由
21.4 路由的测试
第22章 ACTIONCONTROLLER和RAILS
22.1 ACTION方法
22.2 COOKIE和SESSION
22.3 FLASH——ACTION之间的通信
22.4 过滤器与校验
22.5 缓存初接触
22.6 GET请求的问题
第23章 ACTION VIEW
23.1 模板
23.2 使用辅助方法
23.3 用于格式化、链接和分页的辅助方法
23.4 如何使用表单
23.5 包装模型对象的表单
23.6 自制表单构建器
23.7 处理与模型对象无关的字段
23.8 RAILS应用的文件上传
23.9 布局与组件
23.10 再论缓存
23.11 新增模板系统
第24章 WEB 2.0
24.1 PROTOTYPE
24.2 SCRIPT.ACULO.US
24.3 RJS模板
24.4 结论
第25章 ACTIONMAILER
25.1 发送邮件
25.2 接收邮件
25.3 电子邮件的测试
第26章 ACTIVE RESOURCE
26.1 ACTIVE RESOURCE的替代品
26.2 给我看代码
26.3 关联和集合
26.4 小结
第4部分 部署和安全
第27章 保护RAILS应用
27.1 SQL注入
27.2 用参数直接创建记录
27.3 不要相信ID参数
27.4 不要暴露控制器方法
27.5 跨站脚本(CSS/XSS)
27.6 防御SESSION定置攻击
27.7 文件上传
27.8 不要以明文保存敏感信息
27.9 用SSL传输敏感信息
27.10 不要缓存需要身份认证的页面
27.11 知己知彼
第28章 部署与生产
28.1 尽早开始
28.2 生产服务器如何工作
28.3 安装PASSENGER
28.4 CAPISTRANO无忧部署
28.5 检查已部署的应用程序
28.6 投入生产运行之后的琐事
28.7 上线,并不断前进
索引