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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃了不新鲜的鱼怎么办 生的猪肉有点臭怎么办? 猪肉馅不新鲜了怎么办 买的肉有点臭了怎么办 炸的东西不脆了怎么办 油炸东西回软了怎么办 吃石斑鱼蛋吐了怎么办 家里的烟筒堵了怎么办 脖子上长鸡皮肤怎么办 铁板烤蔬菜粘锅怎么办 残余尿量300ml怎么办 肌肉拉伤怎么办恢复快小腿 睡觉把背扭了怎么办 后背一侧扭筋了怎么办 背部的筋扭到了怎么办 跳绳跳得膝盖疼怎么办 跑步小腿变粗了怎么办 一蹲下膝盖就响怎么办 做深蹲时膝盖总是吱吱响怎么办 爬山爬的膝盖疼怎么办 膝盖一吹风就疼怎么办 走路太多膝盖腿疼怎么办 膝盖一着凉就痛怎么办 月子里脚受凉了怎么办 膝关节受凉少量积液发胀怎么办 刮痧后吹空调了怎么办 200斤胖子膝盖痛怎么办 风扇吹的腿疼怎么办 膝盖受凉但不疼怎么办 刮痧后洗了澡怎么办 刮痧后喝了啤酒怎么办 艾灸后吃水果了怎么办 刮痧后能洗澡了怎么办 膝盖筋扭了肿了怎么办 骑行之后膝盖疼怎么办 膝盖软骨磨没了怎么办 腿上膝盖长骨刺怎么办 打羽毛球后膝盖疼怎么办 打完羽毛球膝盖疼怎么办 骑动感单车后膝盖痛怎么办 踩完动感单车右膝盖痛怎么办