InfoQ

新闻

Rails2.0——新手指南

作者 Rick DeNatale译者 马家宽 发布于 2007年12月29日 上午12时56分

社区
Ruby
主题
编程,
Ruby on Rails
标签
文档,
Ruby on Rails,
Rails插件

随着前些时候Rails2.0.0和2.0.1版本的发布,以及这两天Rails2.0.2的迅速后继,为Rails提供支持的讨论组充满了Rails新手关于使用一些知名教程,例如Dave Thomas和David Heinemeier Hansson撰写的《Agile Web Development with Rails》时所出现的问题。Thomas/Hansson的书,通常被简称为AWDR,已经在一年前推出了第二版,但仅仅包含了Rails 1.2的内容。

虽然比起Rails 1.2和Rails 1.1,Rails2.0和其前辈Rails1.2之间的变化并不像前二者那么显著,但对于那些毫无防备的初学者,Rails进阶之路仍然陷阱重重。

Rails2.0的目标之一是让Rails框架变得更加简洁。这意味着原来的一些标准特性被从框架内核中移到了插件中。对于那些使用1.2版本教程的用户来说,这可能是一个障碍。下面是两个例子:

  1. 由于MySql一直是Rails的默认之选,许多教程都使用MySql作为数据库。不过现在,Rails2.0.3将缺省的数据库配置改为了Sqlite3。AWDR在书的后面部分介绍了如何使用Sqlite3,但一个从头开始看书的新手可能还没有在遇到数据库方面问题时获得足够多的相关知识。
  2. AWDR的开始部分使用了Rails的动态脚手架,而这一特性现在只有在安装了scaffolding插件后才能使用:
              script/plugin install scaffolding 
    Rails2.0中像这样“丢失”的特性还包括AJAX的本地编辑(in-place-editing)和自动完成(auto-completion),以及一些著名的acts_as_x模型扩展。一些按照过时教程学习Rails的人可以尝试运行下面这句命令:
              script/plugin list 
    来查看是否某些可用的插件提供了那些被从Rails2.0内核中移出的特性。
另一个方法是使用Rails1.2.6来学习教程,然后迁移到2.0版本。首先安装Rails1.2.6:
    gem install rails --version 1.2.6 
然后您可以删除所有已安装的rails 2.0.x gems,或者在生成项目时指明要使用的Rails版本:
    rails _1.2.6_ my_rails_project 

大多数gems所安装的指令其实是对gem中代码调用的包装,所以您可以在版本号的开始和结束处加下划线,将其作为第一个参数,以此来指定所使用gem的版本。

市面上已经有一些介绍Rails2.0的书籍,例如Obie Fernandez所编写的The Rails Way。不过迄今为止他们似乎都致力于面向那些已经拥有一定Rails经验的读者。毫无疑问,在不久的将来,一些“经典”的Rails书籍会更新到Rails2.0,而在新面世的Rails教程中也会用涌现出经典之作。

由此来看,Rails初学者可以选择尝试解决同时使用旧版本教程和新版本框架所产生的问题,也可以继续使用与教程配套的旧版本Rails,直到相关知识技能达到一定程度后再更新Rails的版本。对于广大初学者来说,也许后者是一个更为明智的决定。

查看英文原文:Rails 2.0 - What's a Newbie to Do?
译者简介:马家宽,北京大学软件工程实验室博士研究生,研究方向为过程管理(Process Management)。专业方面的目标是领悟一点软件开发中理论、技术、实践和人这些关键要素的结合之道。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

2 条回复

回复

rails way or ruby way 发表人 eric ann 发表于 2008年1月1日 下午9时20分
rails2.0 发表人 xiao nangua 发表于 2008年1月17日 下午7时55分
  1. 返回顶部

    rails way or ruby way

    2008年1月1日 下午9时20分 发表人 eric ann

    这个好像是两本书吧。。。

  2. 返回顶部

    rails2.0

    2008年1月17日 下午7时55分 发表人 xiao nangua

    觉得应该讲解以下rails2.0 功能测试方面的东西,最好举例说明以下更好!

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。