Ruby on Rails 2.0的新特性介绍(reship)
来源:互联网 发布:fxs1800软件下载 编辑:程序博客网 时间:2024/05/18 02:37
万 众瞩目的Ruby on Rails 2.0已经发布了,Rails框架在2004年诞生以来,一直保持着相当快的版本升级速度:2005年发布了Rails1.0版本,2006年初发布 Rails1.1版本,2007年初发布Rails1.2版本,而还没有等到2008年,在2007年圣诞前夕的12月6日,Rails2.0已经发布。
Rails 框架每个大的版本升级都给我们带来了相当多的新功能,新惊喜。Rails1.0带给我们完善的单元测试和集成测试;Rails1.1带给我们 DataBase Migration和RJS;Rails1.2让我们看到了REST的光明前景,那么Rails2.0又将带给我们什么呢? 我粗略的翻译了一下Rails框架作者DHH写的Rails2.0框架介绍文章,以下翻译自DHH的文章,原文在:
http://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done
在经过差不多一年的开发之后,Rails2.0终于发布了。这是一个棒极了的Rails版本,包括了大量堪称伟大的新特性,无数的bugfix和大量功能的打磨。我们花了无数的精力去打造这样一个非常完美合理的软件包。
这也是Rails框架发展历史上的一个里程碑。我个人在Rails框架上面的开发工作已经有四年半的时间了,并且我们现在的贡献者也越来越多。我对这几年我们所做出的工作和我们一直坚持的信念感到非常的满意。我们一直在坚持这一点并且不断推动它。
在 详细的介绍Rails2.0之前,我要向那些为Rails框架做出过贡献的每一个人致以深深的谢意,不论是像一个家庭那样其乐融融的Rails核心开发团 队,还是成千上万的、而且年复一年为Rails提交补丁,积极参与Rails社区人们。Rails2.0也是大规模开源软件开发社区的一个重大胜利,而你 完全可以自豪于你在Rails社区当中扮演的角色和做出的贡献。干杯!
现在让我们简单的窥一斑见全豹的看看Rails的那些闪闪发光的特性:
Action Pack: Resources
Controller 里面充斥着大量action方法的时代已经过去了,我们对REST架构的应用进行了大量的改进和提高。首先,我们不再使用分号来隔离自定义的方法,而是采 用斜线,例如原来是 /people/1;edit的URL,现在改成了 /people/1/edit.另外我们还对URL路由资源添加了命名空间的支持,因此像后台管理的接口你可以像这样非常简单的定义:
ruby 代码
map.namespace(:admin) do |admin|
admin.resources :products,
:collection => { :inventory => :get },
:member => { :duplicate => :post },
:has_many => [ :tags, :images, :variants ]
end
这 种方式可以让你按照如下的方式定义命名路由,例如:inventory_admin_products_url和 admin_product_tags_url等等。为了方便的记录所有的路由规则,我们添加了一个rake任务叫做“rake routes”,它能够列举出来routes.rb定义的所有命名路由规则。
此外我们还引入了一个新的约定,即所有基于资源的controller默认都是复数形式的。这样即便单个资源在不同的路由规则中被多次引用,仍然可以指向同一个controller来处理,例如:
ruby 代码
# /avatars/45 => AvatarsController#show
map.resources :avatars
# /people/5/avatar => AvatarsController#show
map.resources :people, :has_one => :avatar
Action Pack: Multiview
与 资源映射一起进行功能增强的还有MultiView。我们已经有了respond_to方法,但我们可以更进一步,把MultiView控制延伸到模板里 面去。我们现在可以根据模板文件的后缀格式来决定使用什么render机制。因此,show.rhtml你可以写成show.rhtml.erb,这就表 明是一个默认的rhtml模板,和你过去在Action里面使用respond_to声明的format.html是一个意思。此外你还可以使用诸如 show.csv.erb,它表明显示为csv格式的数据,并且使用默认的erb去render它。
所以,新的模板格式是: action.format.renderer。例如:
* show.erb: 不管什么格式的显示方式都使用默认的erb显示show模板
* index.atom.builder: 用Builder库来render XML文件,输出的文件类型为RSS的AOTM类型
* edit.iphone.haml: 使用用户自己定义的HAML render机制来输出模板内容到iPhone手机上面
http://robbin.javaeye.com/blog/147397
- Ruby on Rails 2.0的新特性介绍(reship)
- Ruby on Rails 2.0的新特性介绍
- Ruby On Rails 2.1新特性介绍_第一章(Introduction)
- ruby on rails 新开始
- Ruby on Rails 2.0
- Ruby On Rails 框架下的常用插件介绍 --- haml
- ruby on rails 建新app
- ruby on rails 的书
- Ruby on Rails的神奇
- ruby on rails的session
- ruby on rails的session
- Ruby On Rails -- Rails的安装
- 关于Ruby, Ruby on Rails的一些概念属性的介绍
- ruby on rails入门系列--ruby和rails的安装
- [Ruby on Rails Tutorial]04-Rails 背后的 Ruby
- Ruby on Rails 3.1的新特征将使你的程序运行更快
- Ruby On Rails的傻瓜安装
- 用Ruby on Rails做的网站
- 超搞笑的设计模式诠释(绝对经典)
- 2007年我国有效专利状况分析
- Meta标签详解
- 第 一 章软件工程简介
- 《高质量C++编程指南:内存管理》学习笔记
- Ruby on Rails 2.0的新特性介绍(reship)
- 在DOS中格式化C盘,及在DOS下硬盘安装windows2003系统
- 发掘个人的高效时段
- Photoshop色彩模式完全手册
- 第二章 需求获取与分析(上)
- 2008年管理软件将面临挑战,你工作流了吗?
- PHP5 in Pactice中文版
- WIN2003 第二块硬盘的共享问题
- 第二章 需求获取与分析(下)