第1篇 概述篇 2
第1章 使用RoR快速开发的实例 2
1.1 概述 2
1.1.1 创建书目 3
1.1.2 浏览书目 3
1.1.3 修改书目 4
1.1.4 删除书目 5
1.2 数据库设计 5
1.3 系统实现 6
1.4 常见问题与解答 17
1.5 小结 18
第2章 RoR概述 19
2.1 概述 19
2.1.1 什么是Ruby 20
2.1.2 什么是Rails 21
2.2 RoR的发展现状与前景 22
2.3 搭建RoR开发环境 23
2.3.1 Windows系统下开发环境的搭建 23
2.3.2 Linux系统下开发环境的搭建 25
2.3.3 开发环境中数据库的安装与配置 26
2.4 常见问题与解答 32
2.5 小结 32
第3章 RoR框架分析 34
第2篇 开发篇 34
3.1 通用模块 35
3.2 RoR的核心模块 36
3.3 目录结构 39
3.4 约定优于配置 40
3.4.1 全局约定 40
3.4.2 局部约定 42
3.5 RoR与J2EE 42
3.5.1 体系架构 42
3.5.2 开发效率 43
3.5.3 社区支持 43
3.6.1 体系架构 44
3.6 RoR与PHP 44
3.5.4 商业支持 44
3.6.2 开发效率 45
3.6.3 社区支持 45
3.6.4 商业支持 45
3.7 对待RoR的态度 46
3.7.1 Web开发领域的发展趋势 46
3.7.2 动态语言与静态语言之争 46
3.7.3 一个客观事实 47
3.7.4 两点建议 48
3.8 常见问题与解答 48
3.9 小结 49
4.1.1 MySQL数据库中数据的导出与导入 50
第4章 RoR模型组件:Active Record 50
4.1 必要的准备工作 50
4.1.2 运行Ruby文件 53
4.2 model类中的约定 53
4.2.1 数据表与model类的映射关系 53
4.2.2 数据表列与对象属性间的映射关系 54
4.2.3 主键与id的关系 57
4.3 CRUD的实现 58
4.3.1 创建记录 58
4.3.2 读取数据 60
4.3.3 更新操作与删除操作 65
4.4.1 聚集操作 69
4.4 聚集操作与事务处理 69
4.4.2 事务处理 74
4.5 数据表间的关联 76
4.5.1 创建外键与指定关联关系 76
4.5.2 belongs_to声明 79
4.5.3 has_one声明 80
4.5.4 has_many声明 81
4.5.5 has_and_belongs_to_many声明 84
4.5.6 列表结构的实现 87
4.6 常见问题与解答 91
4.7 小结 92
第5章 Action Controller组件:控制行为 93
5.2 URL的相关处理机制 94
5.1 处理流程 94
5.2.1 定制URL——map.connect 95
5.2.2 还原URL ——url_for() 97
5.2.3 匿名路由与有名路由 99
5.3 action方法 101
5.3.1 hide_action()方法 101
5.3.2 redirect_to()方法 102
5.3.3 render()方法 103
5.3.4 render_to_string()方法 107
5.3.5 send_data()方法 107
5.3.6 send_file()方法 108
5.3.7 flash——action方法间的通信器 109
5.4 开发环境中的预设对象 114
5.4.1 cookies对象 114
5.4.2 params对象 116
5.4.3 request对象 116
5.5 session对象 117
5.5.1 RoR中的Session处理机制 118
5.5.2 session对象存储内容的限制 118
5.5.3 session对象中的预设参数项 119
5.5.4 Session的存储 119
5.5.5 Session的到期处理 121
5.6 常见问题与解答 121
5.7 小结 122
第6章 Action View组件:显示界面 123
6.1 模板综述 123
6.2 模板的分类 126
6.2.1 rxml模板 126
6.2.2 rhtml模板 128
6.3 模板代码的分离——帮助器模块 130
6.4 局部模板 133
6.5 实战rhtml模板 136
6.5.1 表单的实现 137
6.5.2 分页的实现 143
6.7 小结 150
6.6 常见问题与解答 150
第7章 RoR下的Ajax开发 151
7.1 Ajax简介 151
7.1.1 Ajax的基本原理 152
7.1.2 Ajax效果演示 153
7.2 RoR中的实现之路 155
7.2.1 link_to_remote 156
7.2.2 form_remote_tag 161
7.2.3 observe_field 164
7.2.4 periodically_call_remote 167
7.3 常见问题与解答 170
7.4 小结 171
8.1 Web Service原理 173
第8章 RoR下的Web Service开发 173
8.1.1 架构 174
8.1.2 相关服务标准 175
8.2 Action Web Service方法论 176
8.2.1 三种不同的调度模式 176
8.2.2 直接调度模式下的API开发 178
8.2.3 分层调度模式下的API开发 193
8.3 远程客户端实现 203
8.3.1 基于RoR的客户端实现 204
8.3.2 基于.NET的客户端实现 208
8.3.3 基于Java体系的客户端实现 214
8.4 常见问题与解答 218
8.5 小结 220
第3篇 实例篇 222
第9章 简单的网页计算器 222
9.1 实例描述 222
9.2 准备工作 223
9.2.1 创建RoR工程 223
9.2.2 生成controller控制器文件及模板文件 224
9.3 开发步骤详解 224
9.3.1 calculator_controller.rb 224
9.3.2 calculate.rhtml 226
9.4 实例测试 226
9.5 实例的改进 228
9.5.1 带有检错和纠错机制的controller控制器 229
9.5.2 带有检错和纠错机制的模板文件 230
9.5.3 二次测试 231
9.5.4 说明 232
9.6 常见问题与解答 232
9.7 小结 233
第10章 任务本 234
10.1 实例描述 234
10.2 准备工作 238
10.2.1 创建数据库 238
10.2.2 创建RoR工程 239
10.2.3 修改数据库配置文件 240
10.3.1 实现model层 241
10.3 开发步骤详解 241
10.3.2 实现controller层 242
10.3.3 实现view层 245
10.4 实例测试 250
10.5 常见问题与解答 254
10.6 小结 254
第11章 留言簿 255
11.1 实例描述 255
11.2 准备工作 258
11.2.1 MySQL数据库和表的创建 258
11.2.2 实现留言簿程序基本开发结构 263
11.3.1 work_controller.rb 268
11.3 开发步骤详解 268
11.3.3 list.rhtml 271
11.3.2 work.rb 271
11.4 常见问题与解答 277
11.5 小结 278
第12章 Flickr搜索引擎 279
12.1 实例描述 279
12.2 准备工作 280
12.2.1 下载并安装Flickr组件包 281
12.2.2 创建RoR工程 281
12.2.3 申请API Key 282
12.2.4 设定全局声明 282
12.3.1 flickr_controller.rb 283
12.3 开发步骤详解 283
12.1.1 application.rthml 284
12.3.3 index.rhtml 285
12.3.4 _photo.rhtml 287
12.3.5 flickr.css 287
12.4 实例测试 288
12.5 常见问题与解答 289
12.6 小结 290
附录A 如何在Eclipse中搭建RoR开发环境 291
附录B 有用的网络资源 344
附录C Ruby语言简介 348