Rails Cookbook中文版
Rails Cookbook中文版
Rob Orsini
91ee翻译工作室 译
出版时间:2007年10月
Rails Cookbook一书包含了你要成为一个专业的Rails开发者所需要的各种解决方案。Rails是创建新一代Web 2.0应用程序框架的主导者。本书中不仅包含“安装Rails和配置开发环境”等基本技巧,而且还包含与“RESTful Web Services开发”相关的最新技术的高级技巧。
利用Rails开发出来的应用程序具有轻量级、全功能和可扩展的特性,这些特性引起了Web开发的革命。本书面向现实世界的开发问题,每一个技巧都包含一个测试过的解决方案以及该方案为什么会这样工作和该方案如何工作的讨论,这有助于你将这些技巧应用到相似的解决方案中。本书所包含的主题有:
*用Active Record库对数据进行建模
*用Action View和RHTML模板创建视图
*在Action Controller中建立应用程序逻辑
*测试和调试Rails应用程序
*用JavaScript和Ajax构建更具交互性的Web应用程序
*如何确保Rails应用程序的安全和性能
*用Mongrel和Apache部署Rails应用程序
*用Capistrano进行自动部署
*多种Rails插件的使用方法
不管你是Rails的新手还是老手,在本书中你都能找到测试、调试、确保应用程序安全、使用Ajax、用缓存提升性能以及将应用程序产品化的方法。想降低Web 2.0陡峭的学习曲线吗?本书将会帮助你在使用Rails时节约数百小时的学习时间。
“本书包含了我想要的一切:精确、切题、富有时效性,并且对初学者和专家都适用。更棒的是,书中的很多技巧是由我喜欢的社区里的人贡献的。”
—— Geoffrey Grosenbach
Host of the Ruby on Rails Podcast
“在读到第3章的时候,我知道我应该推荐人们用这本书来开始Rails开发,这一章包含了开发Rails应用程序所需的基本技巧。本书还包括很多高级的技巧,比如测试和RESTful应用程序的开发,这让那些有经验的Ruby主义者也可以通过本书提高自身的技能。”
—— Kevin Clark,http://glu.ttono.us
  1. 序言 I
  2. 前言 III
  3. 第1章:起步 1
  4. 加入Rails社区 2
  5. 寻找文档 4
  6. 安装MySQL 5
  7. 安装PostgreSQL 8
  8. 安装Rails 10
  9. 在OS X 10.4 Tiger上修订Ruby并安装Rails 12
  10. 在带有Locomotive的OS X上运行Rails 14
  11. 在Windows中用Instant Rails运行Rails 16
  12. 用RubyGems更新Rails 18
  13. 把你的Rails工程放入Subversion 19
  14. 第2章:Rails开发 23
  15. 创建一个Rails工程 23
  16. 用脚手架快速启动开发 26
  17. 用Mongrel来加速Rails开发 28
  18. 用Cygwin增强在Windows平台上进行的开发 31
  19. 理解Rails中的复数模式 32
  20. 在OS X平台上用TextMate进行Rails开发 36
  21. 用RadRails来进行跨平台开发 37
  22. 安装和运行边缘Rails 38
  23. 用SSH建立无密码认证 41
  24. 为你的Rails应用生成Rdoc 42
  25. 用Streamlined创建全功能的CRUD应用 45
  26. 第3章:Active Record 49
  27. 为Rails应用程序建立关系数据库 50
  28. 用程序定义数据库模式 54
  29. 开发可迁移数据库 56
  30. 使用Active Record建模 60
  31. 从Rails控制台考查模型关系 63
  32. 通过Active Record访问你的数据 66
  33. 使用find获取记录 68
  34. 在Active Record结果集中进行迭代 71
  35. 使用贪婪加载高效获取数据 74
  36. 更新一个ActiveRecord对象 77
  37. 使用Active Record校验来增强数据完整性 81
  38. 用find_by_sql执行自定义查询 84
  39. 用事务来防止竞争条件 88
  40. 用act_as_list给模型增加排序能力 92
  41. 当模型对象被创建时执行一个任务 97
  42. 用acts_as_nested_set建模一个线索化的论坛 100
  43. 用acts_as_tree创建一个嵌套主题的目录 104
  44. 用乐观锁定避免竞争条件 107
  45. 处理遗留系统中的表 109
  46. 使记录时间戳自动化 111
  47. 用多态关联来整理通用关系 112
  48. 为灵活数据建模混合使用连接模型和多态机制 115
  49. 第4章:Action Controller 121
  50. 通过控制器访问表单数据 122
  51. 改变应用程序的默认页面 125
  52. 使用命名路由净化你的代码 126
  53. 配置自定义路由行为 127
  54. 利用Flash显示提示消息 129
  55. 延长Flash消息的生命周期 131
  56. 在Action后重定向 133
  57. 动态生成URL 134
  58. 使用过滤器监视请求 135
  59. 使用过滤器的日志 137
  60. 渲染动作 140
  61. 限制对控制器方法的访问 141
  62. 发送文件或数据流到浏览器 142
  63. 存储会话信息到数据库中 144
  64. 用会话跟踪信息 146
  65. 使用过滤器进行认证 149
  66. 第5章:Action View 155
  67. 用视图辅助方法简化模板 156
  68. 用分页方法显示大数据集 158
  69. 创建黏性选择列表 161
  70. 用多选列表编辑多对多关联 163
  71. 用布局条理化通用显示代码 166
  72. 定义默认应用程序布局 169
  73. 用Builder模板生成XML 170
  74. 从Active Record数据中生成RSS Feeds 172
  75. 创建局部模板重用页面元素 174
  76. 处理动态创建的输入字段 177
  77. 自定义标准辅助方法的行为 181
  78. 使用表单辅助方法创建Web表单 183
  79. 格式化日期、时间和货币 187
  80. 使用Gravatars将用户简档个性化 190
  81. 使用Liquid模板来避免视图中的有害代码 191
  82. 国际化你的Rails应用程序 195
  83. 第6章:RESTful开发 201
  84. 创建嵌套资源 204
  85. 通过MIME类型提供替代数据格式 208
  86. 用连接模型建立RESTful关系模型 210
  87. 利用RESTful资源超越简单的CRUD 213
  88. 处理复杂的嵌套REST资源 217
  89. 用REST的方式开发Rails应用程序 220
  90. 第7章:Rails应用程序测试 225
  91. 测试用例中常用的对象创建 226
  92. 为多对多关联创建夹具 227
  93. 用CSV夹具导入测试数据 229
  94. 使用ERb在夹具中包含动态数据 232
  95. 初始化测试数据库 233
  96. 从Rails控制台交互式测试控制器 235
  97. 解释Test::Unit的输出 237
  98. 用YAML夹具装入测试数据 238
  99. 使用rake stats监视测试覆盖 240
  100. 用Rake运行测试 241
  101. 用事务性夹具加速测试 242
  102. 用集成测试进行跨控制器的测试 244
  103. 使用功能性测试来测试控制器 247
  104. 检验Cookie的内容 250
  105. 对自定义和命名路由进行测试 253
  106. 使用与响应相关的断言来测试HTTP请求 255
  107. 使用单元测试来测试模型 256
  108. 对模型校验进行单元测试 259
  109. 使用与标签相关的断言来验证DOM结构 261
  110. 编写自定义断言 264
  111. 测试文件的上传 265
  112. 使用Mocks来修改用于测试的类的默认行为 269
  113. 通过持续地运行测试来改进反馈机制 271
  114. 使用Rcov来分析代码的覆盖度 272
  115. 第8章:JavaScript和Ajax 277
  116. 在页面中插入DOM元素 278
  117. 通过拖放创建一个自定义报表 281
  118. 动态地向选择列表添加项目 286
  119. 监控文本区域的内容长度 288
  120. 使用RJS模板更新页面元素 292
  121. 在模板中插入JavaScript 295
  122. 让用户对列表重新排序 298
  123. 自动完成文本字段 302
  124. 动态地查找并高亮显示文本 304
  125. 增强用户界面的视觉效果 308
  126. 实现实时搜索 311
  127. 就地编辑字段内容 315
  128. 创建一个Ajax进度指示器 317
  129. 第9章:Action Mailer 321
  130. 配置Rails发送邮件 322
  131. 用Mailer生成器生成自定义Mailer类 323
  132. 使用模板格式化电子邮件消息 325
  133. 给电子邮件消息增加附件 326
  134. 从Rails应用程序中发电子邮件 327
  135. 用Action Mailer接收邮件 328
  136. 第10章:调试Rails应用程序 333
  137. 从控制台探索Rails 334
  138. 在源文件中使用Ruby -cw修复Bug 336
  139. 使用breakpointer实时调试应用程序 338
  140. 使用内部的Rails Logger类来请求连接 342
  141. 将调试信息写入一个文件 344
  142. 邮件通知应用程序的异常 346
  143. 在视图中输出环境信息 350
  144. 显示发生异常的对象内容 352
  145. 实时过滤开发日志 353
  146. 用Firefox扩展调试HTTP通信 355
  147. 使用JavaScript Shell实时地调试JavaScript 356
  148. 使用ruby-debug交互式调试代码 360
  149. 第11章:安全 365
  150. 通过复杂的密码来使你的系统坚固 365
  151. 在查询中避免SQL注入攻击 368
  152. 保护你的站点避免跨站点脚本攻击 369
  153. 限制对公共方法或动作的访问 371
  154. 关闭不必要的端口来保护你的服务器 373
  155. 第12章:性能 377
  156. 利用Httperf衡量Web服务器的性能 378
  157. 应用代码的基准测试部分 381
  158. 通过缓存静态页面提高性能 382
  159. 使缓存的页面失效 385
  160. 用局部缓存混合静态和动态页面 388
  161. 通过动作缓存来过滤缓存页面 391
  162. 利用memcached加速数据访问 392
  163. 通过缓存处理过的内容提高性能 395
  164. 第13章:主机托管和部署 399
  165. 用Apache1.3和mod_fastcgi作为Rails的宿主环境 400
  166. 用mongrel_cluster管理多个Mongrel进程 402
  167. 用Apache 2.2、mod_proxy_balancer和Mongrel部署Rails应用程序 405
  168. 在Mongrel、Lighttpd和Apache的前端用Pound部署Rails 409
  169. 用cronolog自定义Pound的日志 413
  170. 配置支持SSL的Pound 416
  171. 用Pen实现简单的负载均衡 418
  172. 用Capistrano部署Rails项目 419
  173. 用Capistrano把你的应用程序部署到多个环境中 423
  174. 在无法访问Subversion时用Capistrano进行部署 425
  175. 用Capistrano和mongrel_cluster进行部署 427
  176. 在维护期间禁用站点 429
  177. 自定义Capistrano任务 432
  178. 清理残留的会话记录 436
  179. 第14章:用插件扩展Rails 439
  180. 查找第三方插件 440
  181. 安装插件 441
  182. 用acts_as_versioned来进行版本记录 443
  183. 用acts_as_authenticated构建认证系统 446
  184. 用acts_as_taggable 简化分众分类 450
  185. 使用acts_as来扩展Active Record 455
  186. 将视图辅助方法作为插件添加到Rails中 460
  187. 使用file_column上传文件 462
  188. 使用acts_as_attachment上传文件 465
  189. 使用acts_as_paranoid来屏蔽记录而不删除记录 469
  190. 使用Login Engine添加更详尽的认证方式 471
  191. 第15章:图形 475
  192. 安装RMagick来处理图片 475
  193. 上传图片到数据库 480
  194. 直接从数据库中获得图片 484
  195. 使用RMagick创建调整大小的缩略图 485
  196. 生成PDF文档 488
  197. 使用Gruff可视化地显示数据 490
  198. 使用Sparklines创建小信息提示图形 493
  199. 附录A:迁移到Rails 1.2 497
  200. 索引 501
书名:Rails Cookbook中文版
作者:Rob Orsini
译者:91ee翻译工作室 译
出版时间:2007年10月
书号:978-7-121-05229-3
原版书出版商:O'Reilly Media
Rob Orsini
 
Rob Orsini是一位开源开发者,他现居住在加利福尼亚北部,就职于O’Reilly Media公司软件产品组。在此之前,他担任Industrial Light&Magic网站的管理员,从事一些与工业相关的特定的应用程序的开发。Rob从1998年开始从事Web开发工作,不久后发现了Rails并希望自己今后一直能在这方面工作下去。他同时也是一位爵士音乐家,而且还是一位非常慈爱的父亲。
Rob Orsini is an open source developer living in northern California. He currently works for O'Reilly Media in the production software group. Previously, Rob was the webmaster at Industrial Light & Magic, where he developed applications in support of the special effects industry. Rob has been programming the Web since 1998, and upon discovering Rails, hopes to continue for many more years to come. Rob is also a jazz musician and a loving father.
 
 
Rails Cookbook封面上的动物是一只猎狗(Lycaon pictus),也叫做彩色狗或非洲野狗。它只在非洲平原和半沙漠地带出现。雄性和雌性猎狗都重约45磅到60磅(相当于20千克到27千克),长约30到40英寸(相当于76厘米到112厘米)。与其他种类狗的不同之处在于它仅有四个趾头。尽管每只狗的毛皮颜色不同,但是它们的口鼻处都是黑色,尾巴的末梢是白色。 猎狗有异常灵敏的视力和大大的耳朵,当它们靠近猎物的时候,这些特质为它们提供了主要的感官资源。猎狗每小时约能跑37英里,并具有异常高的“杀死率” (98%)。猎狗是肉食性动物,食物主要包括小羚羊、斑马、羚羊和条纹羚,它们要吸食猎物的血液来保持水分。猎狗从不觅食,不像它们的世敌——土狼。尽管猎狗在农民心目中有极坏的口碑,但是它们却很少猎杀家畜、并且远离人群。猎狗群居生活,它们为不能追逐猎物的成员提供食物,例如刚生产后的雌狗和受伤的狗。雄性的狗能和平地生活在一起,但是因为猎狗只为刚生产后的雌狗提供食物,所以雄狗倾向于为了荣誉而战,或离开群体。由于活动领地的减少、人为的杀戮(主要是下毒和设陷阱)以及群内疾病等原因,猎狗濒危灭绝。