对本书的赞誉
译者序
译者简介
第4 版序言
前言
致谢
第一部分 起步
第1 章 安装Rails 1
1.1 Windows 上的安装 1
1.2 Mac OS X 上的安装 3
1.3 Linux 上的安装 4
1.4 选择一个Rails 版本 5
1.5 设置开发环境 6
1.5.1 命令行 6
1.5.2 版本控制 6
1.5.3 编辑器 7
1.5.4 桌面 8
1.6 Rails 和数据库 9
1.7 本章小结 10
第2 章 即时满足 11
2.1 新建一个应用程序 11
2.2 Hello,Rails ! 13
2.2.1 Rails 和URL 请求 14
2.2.2 第一个动作 14
2.2.3 创建动态网页 15
2.2.4 动态内容 15
2.2.5 把时间加上 16
2.2.6 故事讲到现在 17
2.3 把页面连起来 18
2.4 本章小结 20
2.4.1 练习时间 20
2.4.2 清理现场 21
第3 章 Rails 应用程序框架 22
3.1 模型、视图以及控制器 22
3.2 Rails 的模型支持 24
3.2.1 对象- 关系映射 24
3.2.2 Active Record 25
3.3 Action Pack :视图与控制器 26
3.3.1 视图支持 26
3.3.2 还有控制器 26
第4 章 Ruby 简介 28
4.1 Ruby 是一门面向对象的语言 28
4.1.1 Ruby 命名规则 29
4.1.2 方法 29
4.2 数据类型 30
4.2.1 字符串 30
4.2.2 数组和散列 30
4.2.3 正则表达式 32
4.3 逻辑方法 32
4.3.1 控制结构 32
4.3.2 代码块和迭代器 33
4.3.3 异常 34
4.4 组织结构 34
4.4.1 类 34
4.4.2 模块 36
4.4.3 YAML 36
4.5 封送对象 37
4.6 综合分析 37
4.7 Ruby 语言习语 38
第二部分 构建应用程序
第5 章 Depot 应用程序 41
5.1 增量式开发 41
5.2 Depot 是做什么的 42
5.2.1 用例 42
5.2.2 页面流程 42
5.2.3 数据 44
5.3 让我们来编码吧 45
第6 章 任务A :创建应用程序 46
6.1 迭代A1 :创建商品维护的应用程序 46
6.1.1 创建Rails 应用程序 46
6.1.2 创建数据库 46
6.1.3 生成脚手架 47
6.1.4 应用迁移 48
6.1.5 查看商品清单 49
6.2 迭代A2 :美化商品清单 51
6.3 本章小结 54
练习时间 55
第7 章 任务B :验证和单元测试 57
7.1 迭代B1 :验证 57
7.2 迭代B2 :模型的单元测试 60
7.2.1 真正单元测试 61
7.2.2 静态测试 63
7.2.3 使用静态测试数据 66
7.3 本章小结 67
练习时间 67
第8 章 任务C :商品目录显示 68
8.1 迭代C1 :创建商品目录清单 68
8.2 迭代C2 :增加页面布局 71
8.3 迭代C3 :用帮助函数来调整价格格式 74
8.4 迭代C4 :控制器功能测试 74
8.5 本章小结 77
练习时间 77
第9 章 任务D :创建购物车 78
9.1 迭代D1 :寻找购物车 78
9.2 迭代D2 :将产品放到购物车中 79
9.3 迭代D3 : 添加一个按钮 81
9.4 本章小结 85
练习时间 85
第10 章 任务 E :更智能的购物车 86
10.1 迭代E1 :创建更智能的购物车 86
10.2 迭代E2 :错误处理 90
10.3 迭代E3 :对购物车的最后加工 92
10.4 本章小结 96
练习时间 96
第11 章 任务F :Ajax 初体验 97
11.1 迭代F1 :转移购物车 97
11.1.1 局部模板 97
11.1.2 改变流程 101
11.2 迭代F2 :建立一个基于Ajax的购物车 102
11.2.1 排疑解难 103
11.2.2 客户永远不会满足 104
11.3 迭代F3 :高亮变化 104
11.4 迭代F4 :隐藏一个空的购物车 106
11.5 测试Ajax 改变 110
11.6 本章小结 111
练习时间 112
第12 章 任务G :付款 113
12.1 迭代G1 :获取订单 113
12.1.1 创建获取订单的表单 114
12.1.2 获取订单细节 120
12.1.3 最后一个Ajax 更改 124
12.2 循环G2 :Atom 推送 125
12.3 迭代G3 :分页 128
12.4 本章小结 131
练习时间 131
第13 章 任务H :发送电子邮件 132
13.1 迭代H1 :发送确认邮件 132
13.1.1 配置邮件 132
13.1.2 发送邮件 133
13.1.3 邮件模板 134
13.1.4 生成邮件 135
13.1.5 发送多内容类型 136
13.1.6 邮件功能测试 137
13.2 迭代H2 :应用程序的集成测试 138
13.3 本章小结 142
练习时间 142
第14 章 任务I :登录 143
14.1 迭代I1 :添加用户 143
14.2 迭代I2 :认证用户 150
14.3 迭代I3 :限制访问 155
14.4 迭代I4 :增加侧边栏,更多管理 157
14.5 本章小结 160
练习时间 160
第15 章 任务J :国际化 161
15.1 迭代 J1 :选择语言环境 161
15.2 迭代 J2 :翻译在线商店页面 164
15.3 迭代 J3 :翻译结账页面 169
15.4 迭代 J4 :添加语言环境的切换器 174
15.5 本章小结 175
练习时间 176
第16 章 任务K :部署和产品环境 177
16.1 迭代 K1 :用Phusion Passenger和MySQL 部署 178
16.1.1 安装Passenger 178
16.1.2 在本地部署应用程序 179
16.1.3 使用MySQL 数据库 180
16.1.4 加载数据库182
16.2 迭代 K2:用Capistrano远程部署 183
16.2.1 准备好部署服务器 183
16.2.2 把应用程序放到版本管理下 184
16.2.3 远程部署应用程序 185
16.2.4 冲洗,洗净,重复 187
16.3 迭代 K3 :检查部署的应用程序 188
16.3.1 查看日志文件 188
16.3.2 使用命令行界面来查看实时的应用程序 188
16.3.3 处理日志文件 189
16.3.4 开始发行,超越自我 189
16.4 本章小结 190
练习时间 190
第17 章 Depot 回顾 191
17.1 Rails 的概念 191
17.1.1 模型191
17.1.2 视图192
17.1.3 控制器 192
17.1.4 配置192
17.1.5 测试193
17.1.6 部署193
17.2 文档化所做的事情 193
第三部分 深入Rails
第18 章 自己去发现Rails(工作)方法 195
18.1 东西都去哪里了 195
18.1.1 应用程序的位置 197
18.1.2 测试的位置197
18.1.3 文档的位置197
18.1.4 支持库的位置 198
18.1.5 Rake 任务的位置 199
18.1.6 日志的位置200
18.1.7 静态网页的位置 200
18.1.8 脚本的位置200
18.1.9 临时文件的位置 201
18.1.10 第三方代码的位置 201
18.1.11 配置的位置 201
18.2 命名约定 202
18.2.1 混合大小写、下划线和复数 202
18.2.2 把控制器分组到模块中 203
18.3 本章小结 205
第19 章 Active Record 模块 206
19.1 定义数据结构 206
19.1.1 使用表和字段的规则 206
19.1.2 Active Record 所提供的附加字段 209
19.2 查找和遍历记录 210
19.2.1 识别单个行210
19.2.2 模型关联性说明 211
19.2.3 一对一关联211
19.2.4 一对多关联212
19.2.5 多对多关联212
19.3 创建、读取、更新和删除操作 213
19.3.1 创建新的行记录 213
19.3.2 读取已有行记录 215
19.3.3 动态查询器216
19.3.4 SQL 语言与Active Record 模块 217
19.3.5 使用like 查询子句 218
19.3.6 构造返回记录的子集 219
19.3.7 获取字段统计 221
19.3.8 范围函数 221
19.3.9 编写自己SQL 语句 222
19.3.10 重新加载数据 224
19.3.11 更新现有行记录 224
19.3.12 方法save、save!、create和create! 225
19.3.13 删除行记录 226
19.4 干预跟踪进程 227
19.4.1 成组相关回调 228
19.4.2 观察器 231
19.4.3 观察器实例化 232
19.5 数据库事务 232
19.6 本章小结 235
第20 章 行为调度和行为控制 237
20.1 分派请求到控制器 237
20.1.1 REST :表述性状态转移 238
20.1.2 添加附加行为 243
20.1.3 嵌套资源 243
20.1.4 浅路由嵌套243
20.1.5 选择数据表述 244
20.1.6 测试路由 245
20.2 处理请求 246
20.2.1 行为方法 246
20.2.2 控制器环境246
20.2.3 用户响应 248
20.2.4 呈现模板 248
20.2.5 发送文件和其他数据 251
20.2.6 重定向 253
20.3 持续请求的对象和操作 255
20.3.1 Rails 会话 255
20.3.2 会话存储 257
20.3.3 比较会话存储选项 258
20.3.4 会话逾期与清除 259
20.3.5 闪存:行为间通信 259
20.3.6 过滤器 260
20.3.7 前置和后置过滤器 260
20.3.8 过滤器继承261
20.4 本章小结 261
第21 章 Action View 模块 263
21.1 使用模板 263
21.1.1 模板存放的位置 263
21.1.2 模板运行的环境 264
21.1.3 模板包含的内容 264
21.2 生成表单 265
21.3 处理表单 267
21.4 上传文件到Rails 应用程序 268
21.5 使用帮助程序 271
21.5.1 自定义的帮助程序 272
21.5.2 格式和链接帮助程序 272
21.5.3 格式帮助程序 272
21.5.4 链接到其他页面和资源 274
21.6 用页面布局和局部模板减轻维护工作 277
21.6.1 布局277
21.6.2 放置布局文件 278
21.6.3 传递数据到布局 279
21.6.4 局部页面模板 281
21.6.5 局部模板和集合 282
21.6.6 共享模板 283
21.6.7 局部模板与布局 283
21.6.8 局部模板和控制器 283
21.7 本章小结 283
第22 章 缓存 285
22.1 页面缓存 285
22.2 让页面失效 287
22.2.1 显式地让页面失效 287
22.2.2 挑选缓存存储策略 288
22.2.3 隐式地让页面失效 289
22.2.4 让基于时间的缓存页面失效 290
22.2.5 正确处理客户端缓存 291
22.2.6 过期头 291
22.2.7 最后的修改和ETag 支持 291
22.3 片段缓存 292
22.4 本章小结 296
第23 章 数据迁移 297
23.1 创建和运行迁移 297
23.2 剖析迁移 299
23.2.1 字段的类型300
23.2.2 重命名字段301
23.2.3 修改字段 302
23.3 表的管理 302
23.3.1 表的创建选项 303
23.3.2 表的重命名304
23.3.3 rename_table 方法的问题 304
23.3.4 定义索引 305
23.3.5 主键306
23.3.6 没有主键的表 306
23.4 高级迁移 306
23.4.1 使用原生 SQL 307
23.4.2 扩展迁移 307
23.4.3 自定义消息和基准测试程序 309
23.5 当迁移变糟时 309
23.6 迁移外的模式管理 310
23.7 本章小结 311
第24 章 非浏览器应用 312
24.1 用Active Record 开发独立应用程序 312
24.2 使用Active Support 库功能 313
24.2.1 核心扩展 313
24.2.2 附加的Active Support 类 315
24.2.3 使用 Action View 帮助程序 317
24.3 使用Active Resource 开发远程应用程序 317
24.3.1 访问和更新简单属性 317
24.3.2 关系和集合318
24.3.3 汇总整理 320
24.4 本章小结 321
第25 章 Rails 包依赖关系 322
25.1 用构建器生成XML
25.2 用ERb 生成HTML 323
25.3 用Bundler 管理包依赖关系 325
25.4 用Rack 实现与Web 服务器的交互 327
25.5 自动执行任务工具Rake 330
25.6 Rails 包依赖关系揭秘 331
25.7 本章小结 333
第26 章 Rails 插件 334
26.1 信用卡业务处理插件Active Merchant 334
26.2 节约带宽的插件Asset Packager 335
26.3 用Haml 美化标记语言 337
26.4 用JQuery 少写多做 339
26.5 在RailsPlugins.org上找出更多 342
26.6 本章小结 343
第27 章 整装进发 344
参考文献 345
· · · · · · (
收起)