第1章 Ruby on Rails快速入门 1
1.1了解Ruby和Rails 1
1.1.1 Ruby简介 1
1.1.2 Rails简介 3
1.2搭建开发环境 5
1.2.1 Windows下搭建过程 5
1.2.2 Linux下搭建过程 9
1.2.3安装数据库 10
1.2.4安装DevKit 15
1.3选择一款开发工具 16
1.3.1基于命令行的工具——irb 16
1.3.2轻量级工具——SciTE 17
1.3.3可视化集成开发工具——RubyMine 19
1.4手动编译Ruby程序 22
1.5 Ruby语言简单应用 24
1.5.1 Ruby语言基础 24
1.5.2 Ruby注释 25
1.5.3获取用户输入 28
第2章 Ruby语言基础 31
2.1常量 31
2.1.1创建常量 31
2.1.2常量作用域 32
2.2变量 34
2.2.1局部变量 34
2.2.2全局变量 35
2.3基本类型 37
2.3.1数值类型 37
2.3.2字符串 39
2.4运算符和表达式 40
2.4.1赋值运算符 40
2.4.2算术运算符 41
24.3比较运算符 41
2.4.4逻辑运算符 43
2.4.5位运算符 44
24.6三目运算符 45
2.4.7运算符优先级 45
2.4.8表达式 46
2.5赋值方式 47
2.5.1并行赋值 47
2.5.2嵌套赋值 48
2.6范围 49
2.7散列表 51
2.7.1定义散列表 51
2.7.2操作散列表 52
2.7.3遍历散列表 52
2.8符号 53
2.9类型转换 55
第3章 流程控制语句 57
3.1条件控制语句 57
3.1.1 if语句 57
3.1.2 unless语句 62
3.1.3 case语句 63
3.2循环语句 66
3.2.1 while语句 66
3.2.2 until语句 68
3.2.3 for in语句 68
3.2.4 loop语句 70
3.2.5 each语句 70
3.3跳转控制 71
3.3.1 break语句 71
3.3.2 next语句 72
3.3.3 redo语句 73
3.3.4 return语句 74
第4章 实用数据处理 76
4.1数组 76
4.1.1定义数组 76
4.1.2字符串转换成数组 78
4.1.3添加数组元素 78
4.1.4删除数组元素 79
4.1.5截取数组 80
4.1.6合并数组 80
4.2字符串 81
4.2.1定义字符串 81
4.2.2替换字符串 83
4.2.3复制字符串 84
4.2.4合并字符串 84
4.2.5获取字符和子字符串 85
4.2.6比较字符串内容 86
4.2.7比较字符串大小 87
4.2.8改变字符串内容 88
4.3日期和时间 89
4.3.1定义日期和时间对象 89
4.3.2格式化日期 91
4.3.3操作日期对象 92
4.4正则表达式 93
4.4.1定义正则表达式 93
4.4.2正则表达式操作 97
第5章 使用类编程 99
5.1理解面向对象概念 99
5.1.1什么是对象 99
5.1.2封装 100
5.1.3继承 100
5.1.4多态 101
5.2类 102
5.2.1定义类 102
5.2.2实例化类 103
5.2.3构造函数 104
5.2.4内部类 105
5.2.5特殊类 106
5.3方法 107
5.3.1定义方法 107
5.3.2定义类方法 110
5.3.3定义特殊方法 111
5.4定义类成员 112
5.4.1变量 112
5.4.2属性 114
5.5作用域修饰符 116
5.6继承类 118
5.6.1继承语法 118
5.6.2访问基类构造函数 121
5.6.3继承基类的方法 122
第6章 Ruby高级功能 124
6.1 BEGIN块和END块 124
6.2模块 126
6.2.1定义模块 126
6.2.2命名空间 127
6.2.3加载外部文件 128
6.3线程 129
6.3.1创建线程 130
6.3.2返回当前线程 130
6.3.3挂起当前线程 131
6.3.4暂停线程 132
6.3.5停止线程 133
6.3.6休眠线程 134
6.3.7获取线程状态 134
6.4异常处理 136
6.4.1常见异常 136
6.4.2捕获异常 137
6.4.3手动抛出异常 140
6.4.4自定义异常类 141
6.5其他动态语言特性 142
6.5.1 method_missing方法 142
6.5.2 Proc对象 143
6.5.3动态执行代码 145
6.5.4垃圾收集器 145
第7章 访问本地文件系统 147
7.1获取文件属性 147
7.1.1查看文件大小 147
7.1.2查看文件时间属性 148
7.1.3检查文件是否存在 149
7.1.4查看文件操作权限 149
7.2打开文件与关闭文件 150
7.2.1打开文件 150
7.2.2关闭文件 152
7.3读取文件 152
7.3.1使用内置读取方法 152
7.3.2按行读取 155
7.3.3按字节读取 156
7.3.4使用类方法读取 156
7.4写入文件 157
7.5操作文件 158
7.5.1重命名文件 159
7.5.2删除文件 159
7.6操作目录 159
7.6.1获取当前目录 160
7.6.2改变当前目录 160
7.6.3删除目录 161
7.6.4遍历目录 161
7.7操作路径 162
7.7.1分析路径 162
7.7.2获取绝对路径 163
7.7.3链接路径 163
第8章 访问数据库 164
8.1 Ruby访问数据库方式 164
8.1.1 DBI模块简介 164
8.1.2 Mysql模块简介 166
8.2 DBI模块操作数据库 167
8.2.1连接数据库 167
8.2.2执行SQL语句 169
8.2.3获取查询结果集 170
8.2.4使用占位符 172
8.2.5使用事务 173
8.3 Mysql模块操作数据库 174
8.3.1连接数据库 174
8.3.2执行SQL语句 176
8.3.3使用fetch_row获取结果集 177
8.3.4使用fetch_hash获取结果集 178
8.3.5使用迭代器获取结果集 179
8.3.6处理nil值 179
8.3.7处理特殊字符 180
8.3.8查询元数据 181
第9章 Rails框架基础 183
9.1 Rails3简介 183
9.1.1 Rails与MVC的关系 184
9.1.2 Rails核心组件 185
9.1.3 Rails3新增特性 186
9.2创建第一个Rails程序 187
9.2.1创建项目 187
9.2.2查看项目目录结构 189
9.2.3查看项目数据库配置 192
9.3创建图书网站首页 196
9.4使用生成器创建Rails程序 197
9.4.1 scaffold生成器的使用 198
9.4.2分析程序的执行流程 206
9.5完善图书网站 208
第10章 MVC的数据持久化层 216
10.1 Rails的数据持久化 216
10.1.1 ORM简介 217
10.1.2 ActiveRecord简介 218
10.2 ActiveRecord入门 219
10.2.1表与类的映射 219
10.2.2列与属性的映射 221
10.2.3访问属性 222
10.2.4自定义主键 224
10.2.5连接多个数据库 225
10.3查询数据 227
10.3.1使用静态查询find 227
10.3.2使用动态查询 231
10.3.3使用SQL语句查询 235
10.3.4统计记录行数 236
10.4插入数据 238
10.4.1 new方法 238
10.4.2 create方法 240
10.5更新数据 243
10.5.1 save方法 243
10.5.2 update方法 243
10.5.3 update_attribute方法 245
10.5.4 update_attributes方法 245
10.5.5 update_all方法 246
10.6删除数据 247
10.6.1 delete方法 247
10.6.2 delete all方法 248
10.6.3 destory方法 248
10.6.4 destory_all方法 250
10.7定义表关联 250
10.7.1数据库中的关联关系 250
10.7.2一对一关联 253
10.7.3一对多关联 256
10.7.4多对多关联 260
10.7.5自关联 263
10.8数据有效性验证 265
10.8.1非空验证 265
10.8.2唯一验证 267
10.8.3长度验证 268
10.8.4数值验证 269
10.8.5数据格式验证 270
10.8.6确认验证 270
10.8.7其他格式验证 272
10.8.8自定义数据验证 272
10.9事务处理 274
10.10定义回调方法 275
第11章 MVC的控制器层 277
11.1 Rails控制器简介 277
11.1.1.了解Action Pack 277
11.1.2了解控制器执行流程 278
11.2控制器的路由 279
11.2.1路由配置文件简介 279
11.2.2默认路由 281
11.2.3资源路由 282
11.2.4命名路由 285
11.2.5嵌套路由 285
11.2.6正则路由 286
11.3了解控制器基类ActionController::Base 289
11.3.1 Parameter对象 289
11.3.2 Redirect对象 290
11.3.3 Render对象 290
11.3.4 Request对象 291
11.3.5 Response对象 291
11.3.6 Session对象 291
11.4定义数据显示模板 292
11.4.1默认模板 292
11.4.2自定义视图模板 294
11.4.3自定义Layout模板 294
11.4.4局部模板 295
11.4.5内嵌模板 296
11.4.6文件模板 297
11.4.7文本模板 298
11.5控制器重定向 299
11.5.1重定向到Action 299
11.5.2重定向到URL 300
11.6使用过滤器 301
11.6.1过滤器类型 301
11.6.2过滤定义方式 302
11.6.3继承过滤器 305
11.7输入校验 306
第12章 MVC的视图层 308
12.1 Rails模板 308
12.1.1模板分类 308
12.1.2 ERB模板 310
12.1.3 XML模板 312
12.1.4 RJS模板 313
12.2使用外部文件 314
12.2.1 JavaScript函数库 314
12.2.2图片文件 317
12.2.3 CSS样式表 320
12.3格式化输出 322
12.3.1字符串格式化 323
12.3.2数字格式化 324
12.3.3日期和时间格式化 328
12.4生成超链接 329
12.4.1标准超链接 330
12.4.2自定义链接 332
12.5生成表单 333
12.5.1创建表单 334
12.5.2文本标签 335
12.5.3密码域 335
12.5.4文本域 336
12.5.5提交按钮 336
12.5.6隐藏域 337
12.5.7单选和多选 337
12.5.8下拉列表 338
12.6从模型生成表单 341
12.6.1创建表单 341
12.6.2表单元素 343
12.6.3下拉菜单 346
12.7显示日期和时间 347
12.7.1 date_select方法 347
12.7.2 datetime_select方法 349
12.7.3 select_*系列方法 350
12.8使用Helper类 351
第13章 Ruby on Rails高级开发技术 354
13.1视图之间共享数据 354
13.1.1 Session 354
13.1.2 Cookie 359
13.1.3全局变量 361
13.1.4 flash[:notice] 362
13.2文件上传与下载 363
13.2.1上传 363
13.2.2下载 365
13.3使用CKeditor文本编辑器 367
13.3.1 CKeditor的安装 367
13.3.2 CKeditor的使用 368
13.4缓存 370
13.4.1页面缓存 371
13.4.2局部缓存 372
13.4.3 Action缓存 374
13.5 Ajax开发 375
13.5.1 Ajax简介 375
13.5.2标准Ajax 376
13.5.3 jQuery Ajax 379
13.5.4 Rails Ajax 381
13.6数据分页显示 385
第14章 博客系统 388
14.1系统分析 388
14.1.1分析功能 388
14.1.2设计数据库 389
14.2创建Rails项目 392
14.3设计通用模块 394
14.3.1系统模板 394
14.3.2全局配置 396
14.3.3路由配置 398
14.3.4辅助模块 398
14.4博客前台首页 400
14.5文章模块 402
14.5.1查看详细文章 402
14.5.2发表评论 403
14.5.3文章归档 405
14.6查看页面内容 406
14.7博客后台管理首页 407
14.8文章管理模块 409
14.8.1管理文章 409
14.8.2添加文章 411
14.8.3编辑文章 413
14.8.4删除文章 414
14.9页面管理模块 414
14.10评论管理模块 416