《RailsSpace:Ruby on Rails Web应用开发》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)MichaelHartl,(美)AureliusProchazka著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115191212
  • 页数:424 页
图书介绍:本书通过对一个社交网络RailsSpace整个开发过程的介绍,详细地展示了流行的Web应用程序开发框架Rails on Rail的配置和使用方法。本书循序渐进地带领读者完成一个完整的项目,从静态的标题页开始,通过添加注册和验证功能,逐步完成一个高度动态的网站,它具备用户配置、图像上传、简单的博客、纯文本和地理位置搜索以及交友请求系统等功能。本书内容翔实,涵盖了诸如MVC程序架构、关系数据库和AJAX支持、强大的测试机制和REST风格等许多Rails的精彩特性,以及注册和登录、CSS样式和特效、后台数据库交互、博客站点等内容。

第1章 导言 1

1.1 使用Rails的理由 1

1.1.1 生产力趋于自由 1

1.1.2 不自由的生产力 2

1.2 选择本书的理由 3

1.3 本书读者 3

1.3.1 阅读本书的方法 4

1.3.2 跟踪本书动态 4

1.4 两个Rails的故事 4

1.4.1 Aure 4

1.4.2 Michael 6

第1部分 基础知识 10

第2章 入门指南 10

2.1 预备知识 10

2.1.1 设置开发环境 12

2.1.2 执行rails 12

2.1.3 开发服务器 14

2.2 第一个页面 15

2.2.1 生成一个控制器 16

2.2.2 Site控制器 17

2.2.3 RailsURL 19

2.2.4 改变路由 20

2.3 Rails视图 20

2.4 页面布局 22

2.4.1 ERb、操作和实例变量 24

2.4.2 回顾:切分一个页面 25

2.4.3 添加导航栏 26

2.4.4 哈希表 27

2.4.5 符号 28

2.4.6 完善linkto 28

2.4.7 一些风格的问题 29

2.4.8 完善导航栏 30

2.4.9 自己动手查找 30

2.5 基于样式的开发 31

第3章 用户建模 34

3.1 创建用户模型 34

3.1.1 安装数据库 34

3.1.2 migration和用户模型 37

3.1.3 针对用户模型的第一版本的migration代码 37

3.1.4 运行migration 39

3.2 用户模型验证 41

3.2.1 控制台 41

3.2.2 一个简单的验证机制 43

3.2.3 验证机制的执行 45

3.2.4 改进验证机制 46

3.2.5 全功能的验证机制 47

3.2.6 有魔法的列 49

3.3 进一步确保数据完整性 51

第4章 用户注册 53

4.1 User控制器 53

4.2 用户注册:视图 54

4.2.1 注册视图:外观 54

4.2.2 理解注册视图 58

4.2.3 精化注册表单 59

4.2.4 享受表单并调试它 61

4.3 用户注册:实际操作 63

4.3.1 表单错误信息 67

4.3.2 Flash 70

4.3.3 完成后的register函数 72

4.3.4 中心页面的占位模块 73

4.4 添加注册链接 74

4.5 一个示例用户 78

第5章 测试入门 79

5.1 测试哲学 80

5.2 配置测试数据库 80

5.3 测试site控制器 81

5.3.1 有价值的测试 82

5.3.2 测试是否过度 84

5.4 测试注册机制 84

5.4.1 运行功能测试 84

5.4.2 针对注册机制的基本测试 85

5.4.3 测试成功的注册 87

5.4.4 测试不成功的注册 88

5.4.5 执行测试 90

5.4.6 是否还需要其他针对注册功能的测试 91

5.5 基本的User模型测试 91

5.6 详细的User模型测试 94

5.6.1 测试唯一性 95

5.6.2 测试用户名长度 96

5.6.3 使用控制台 97

5.6.4 测试密码长度 98

5.6.5 测试正则表达式 100

5.6.6 执行所有测试 106

第6章 登录和注销 108

6.1 使用session维护状态 108

6.2 登录 110

6.2.1 跟踪登录状态 110

6.2.2 注册时自动登录 110

6.2.3 基于session变量的调试 111

6.2.4 登录视图和操作 115

6.2.5 针对有效登录的测试 117

6.2.6 针对无效登录的测试 119

6.3 注销 120

6.3.1 测试注销操作 122

6.3.2 测试导航功能 122

6.4 保护页面 124

6.4.1 愚笨的页面保护 124

6.4.2 巧妙的页面保护 125

6.4.3 测试页面保护 127

6.5 友好的URL转向 128

6.5.1 request变量 128

6.5.2 友好的登录后转向 132

6.5.3 友好的注册后转向 133

6.5.4 友好性测试 134

6.6 对基本的登录功能进行重构 135

6.6.1 loggedin? 136

6.6.2 login! 139

6.6.3 logout! 142

6.6.4 clear_password! 143

6.6.5 消除表单处理中的重复代码 145

6.6.6 消除友好转向中的重复代码 146

6.6.7 健康状态检查 148

第7章 高级登录功能 149

7.1 记忆功能 149

7.1.1 Remember Me?复选框 149

7.1.2 Remember Me属性 152

7.1.3 Remember Mecookie 153

7.2 真正记住用户 158

7.2.1 验证cookie 159

7.2.2 记起曾经记住的 160

7.2.3 更新logout函数 162

7.2.4 更安全的cookie 164

7.2.5 完成的(?)函数 166

7.3 Remember Me测试 167

7.3.1 更新后的登录测试 167

7.3.2 更新后的注销测试 172

7.4 高级测试:集成测试 173

7.4.1 测试cookie记忆:第一个片断 173

7.4.2 对测试代码进行测试:一个警示 175

7.4.3 对Rails测试的一些反思 177

7.5 再次重构 177

7.5.1 对记住用户信息的代码进行重构 178

7.5.2 对忘记用户信息的代码进行重构 180

7.5.3 两点改进 181

7.5.4 彻底重构后的login函数 183

7.5.5 最后需要考虑的问题 185

第8章 更新用户信息 186

8.1 不仅仅是占位页面的中心 186

8.2 更新E-mail地址 187

8.3 更新密码 189

8.4 测试用户编辑功能 196

8.4.1 测试辅助函数 196

8.4.2 测试编辑页面 200

8.4.3 高级测试 201

8.5 partials 203

8.5.1 两个简单的partial 203

8.5.2 更高级的partial 204

8.5.3 最后一个小错误 206

8.5.4 更新登录和注册操作 207

第2部分 创建一个社交网络 212

第9章 个人配置信息 212

9.1 用户配置信息占位页面 213

9.1.1 用户配置信息页面的URL 213

9.1.2 Profile控制器和操作 214

9.2 用户规格描述 216

9.2.1 创建Spec模型 216

9.2.2 Spec模型 218

9.2.3 模型整合 220

9.3 编辑用户规格 221

9.3.1 Spec规格控制器 221

9.3.2 一个HTML公共工具程序 223

9.3.3 规格描述的编辑视图 225

9.3.4 保护规格描述的相关页面 226

9.3.5 测试规格描述功能 227

9.4 更新用户中心 230

9.4.1 新的hub视图 231

9.4.2 显示规格描述信息的方框 234

9.4.3 命名路由和配置信息相关的URL 235

9.4.4 用户中心的主要内容 237

9.5 个人FAQ:兴趣与个性 240

9.5.1 FAQ模型 240

9.5.2 FAQ控制器 243

9.5.3 编辑FAQ 243

9.5.4 将FAQ添加到用户中心 245

9.5.5 测试FAQ功能 248

9.6 面向公众的配置信息 249

第10章 社区 252

10.1 创建一个社区(Community控制器) 252

10.2 创建示例用户 253

10.2.1 收集数据 253

10.2.2 载入数据 254

10.3 社区索引 256

10.3.1 find操作中的新技巧 257

10.3.2 index操作 259

10.3.3 字典序索引 261

10.3.4 显示索引结果 263

10.4 对结果进行完善 267

10.4.1 添加分页功能 267

10.4.2 结果摘要信息 268

第11章 搜索与浏览 271

11.1 搜索 271

11.1.1 搜索视图 271

11.1.2 Ferret 273

11.1.3 使用find_by_contents进行搜索 275

11.1.4 为搜索页面添加分页功能 277

11.1.5 规则的异常 280

11.2 测试搜索页面 282

11.3 着手浏览功能 284

11.3.1 浏览页面 284

11.3.2 通过A/S/L查找(暂时保留L) 286

11.4 区域、区域、区域 290

11.4.1 本地的地理信息数据库 290

11.4.2 使用GeoData进行区域搜索 292

11.4.3 区域名称 295

11.4.4 添加浏览验证 296

11.4.5 最终的社区主页 301

第12章 头像 303

12.1 为上传头像做准备 303

12.1.1 调整一个模型 304

12.1.2 头像上传页面 305

12.1.3 用于头像功能的partial 308

12.2 维护头像信息 310

12.2.1 ImageMagick和图像转换 310

12.2.2 save方法 313

12.2.3 添加验证机制 315

12.2.4 删除头像 317

12.2.5 测试头像功能 319

第13章 E-mail 322

13.1 Action Mailer 322

13.1.1 配置 322

13.1.2 密码提醒 323

13.1.3 添加提醒链接以及发送提醒信息 325

13.1.4 测试提醒功能 327

13.2 双向隐藏的E-mail系统 330

13.2.1 E-mail链接 330

13.2.2 correspond操作和E-mail表单 331

13.2.3 E-mail邮件 334

13.2.4 测试双向隐藏的E-mail 336

第14章 交友系统 340

14.1 为交友系统创建数据模型 340

14.1.1 抽象的朋友关系 340

14.1.2 Friendship模型 341

14.1.3 创建未决定的朋友关系 343

14.1.4 朋友关系请求 344

14.1.5 完成Friendship模型 345

14.1.6 测试Friendship模型 346

14.2 朋友关系请求 348

14.2.1 建立朋友关系请求的链接 348

14.2.2 控制请求 350

14.3 管理朋友关系请求 352

14.3.1 has-many:through 352

14.3.2 交友中心 354

14.3.3 Friendship操作 357

14.3.4 测试建立朋友关系的请求 359

第15章 REST风格的博客 361

15.1 应该休息(REST)一下了 361

15.1.1 REST和CRUD 362

15.1.2 URL修饰符 364

15.1.3 房间里的大象:分号 365

15.1.4 应答格式和一个免费的API 366

15.2 用于REST风格的博客的脚手架 367

15.2.1 第一个REST风格的资源 367

15.2.2 博客中的帖子 369

15.2.3 Posts控制器 372

15.3 创建真正的博客 375

15.3.1 连接到模型 375

15.3.2 博客和帖子的路由 376

15.3.3 真正的Posts控制器 377

15.3.4 博客管理 380

15.3.5 创建帖子 381

15.3.6 显示帖子 383

15.3.7 编辑帖子 386

15.3.8 发表帖子 387

15.3.9 最后一个琐碎的细节 389

15.4 REST风格的测试 391

15.4.1 默认的REST功能测试 391

15.4.2 两个自定义测试 393

第16章 基于AJAX的博客评论功能 395

16.1 REST风格的评论功能 395

16.1.1 评论资源 395

16.1.2 Comment模型及其关联 396

16.1.3 Comments控制器和抢先式的partial 398

16.1.4 为评论相关的请求提供路由 399

16.2 进入AJAX 400

16.2.1 新评论 401

16.2.2 创建评论 404

16.2.3 删除评论 406

16.3 视觉效果 408

16.3.1 RJS文件和第一个特效 408

16.3.2 另两个特效 410

16.3.3 取消按钮 411

16.3.4 优雅地退而求其次 411

16.4 调试和测试 413

16.4.1 再次审视new 413

16.4.2 基于xhr的AJAX测试 414

第17章 接下来的操作 416

17.1 部署的考虑点 416

17.1.1 软件和硬件选项 416

17.1.2 在生产模式中运行 417

17.1.3 最基本的生产服务器环境 418

17.1.4 伸缩性 420

17.1.5 管理基础 421

17.2 与Ruby and Rails相关的更多信息 423