应用Rails进行敏捷Web开发

Dave Thomas, David Hansson等

出版时间

2006-07-01

ISBN

9787121028724

评分

★★★★★
书籍介绍
这不是一本让你从头读到尾的入门教程,而更像一本值得摊在桌边随时翻查的开发手册。它最出色的地方,在于用一个完整的在线购书网站示例,把迭代式开发的真实过程摊给你看:如何脚手架式地生成模块、如何处理路由报错、如何把「显示什么时间」这种看似多余的设计,沉淀为可复用的应用级逻辑。作者把 MVC 之间职责划分的考量讲得极细,读完你会理解「为什么数据该由控制器交给视图」,而不只是照抄代码。不过它也有明显的门槛:对 Ruby 不熟的人会感到别扭,且框架版本迭代快,书里部分代码已难以直接运行。因此它更适合有一定基础、想深入理解 Rails 设计哲学的开发者,或作为案头参考,而非零基础速成读物。
AI导读
核心看点
  • Rails开山之作,经典入门必读
  • 通过在线购书示例演示敏捷开发
  • 深入解析框架组件与Web技术
读者共识
  • 前半部分实例教学堪称经典
  • 翻译水平被广泛吐槽,体验不佳
  • 适合入门,但部署内容已过时
精彩摘录
  • "ruby script/generate scaffold product \ title:string..."
  • ""http://localhost:3000/admin""
  • "<%= imag_tag("logo.png") %>"
  • "如果你看到的是 No route matches "/say/hello",试着重启服务,可能你做了什么导致 Rails 将控制器创建前的配置信息缓存起来了。"
  • "但<%=和%>符号之间的内容则会被看作 Ruby 代码执行,执行的结果将被转换为字符串,并替换到文件中 <%=...%>序列所在的位置。 另外,在.html.erb 文件中,<%与%>符号(前者没有等号)之间的内容会被看作 Ruby 代码执行, 但执行的结果不替换回输出。真正有趣的是,可以将这种程序处理与非 Ruby 代码混合使用。"
  • "为什么我们要在控制器中获取时间,然后在视图中显示?这不是自找麻烦吗?问得好。在这个应用程序中,你当然可以直接在模板中调用 Time.now()方法;但是,把这一调用放进控制器会给我们带来方便。 譬如说,也许我们将来会希望对应用程序进行扩展,使其可以支持多国家使用,这样我们就须对时间的显示加以本地化:不仅要选择适合用户习惯的显示格式,还要提供与他们所在时区相应的时间。这些逻辑应该属于应用级代码,并不适合嵌在视图中。 如果在控制器中提供要显示的时间信息,我们的应用程序就会更加灵活:我们可以在控制器中修改显示格式和时区设置,而不必对视图做任何修改。 时间信息是一份数据,它应该由控制器提供给视图。 等"
  • "depot> ruby script/generate scaffold product \ > title:string description:text image_url:string"
  • "命令太长页面中无法放入。要把一条命令分成多行输入,只需在行尾加入反斜杠,你就会得到提示要求输入更多内容。 Windows 用户需要将完整的命令在一行中输入,不能有反斜杠。 6这本书中的时间戳明显是人为编造的。通常时间戳是不连续的,它反映出创建迁移任务的时间。 7如果这让你感到危险,不妨现在就尝试一下撤销迁移。只要在命令行输入: depot>rake db:migrate VERSION=0 数据库结构就会穿梭时空回到过去,products 表就这么消失了,再调用 rake db:migrate 则会再次创建它。"
用户评论
简单的入门好书
可惜rails版本已经和本书内容差的较远了
: TP393.09
大概翻了一下入门相当不错,以后有用到时候再好好看。
Rails入门书,不错
很贴心的一本书, 虽然我需要读的章节不到一半
我买到的是介绍 Rails 1.0 以下的...不过还好主要是看思想
很基础的rails开发过程
第四版也已经有点老了!
求书
收藏