Ruby on Rails 2.0的新特性介绍

http://tech.ddvip.com   2008年01月18日    社区交流

内容摘要:在详细的介绍Rails2.0之前,我要向那些为Rails框架做出过贡献的每一个人致以深深的谢意,不论是像一个家庭那样其乐融融的Rails核心开发团队,还是成千上万的、而且年复一年为Rails提交补丁,积极参与Rails社区人们。Rails2.0也是大规模开源软件开发社区的一个重大胜利,而你完全可以自豪于你在Rails社区当中扮演的角色和做出的贡献。干杯!

  Action Pack: Resources

  Controller里面充斥着大量action方法的时代已经过去了,我们对REST架构的应用进行了大量的改进和提高。首先,我们不再使用分号来隔离自定义的方法,而是采用斜线,例如原来是 /people/1;edit的URL,现在改成了 /people/1/edit.另外我们还对URL路由资源添加了命名空间的支持,因此像后台管理的接口你可以像这样非常简单的定义:

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来处理,例如:

# /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它。

来源:javaeye    作者:robbin    责编:豆豆技术应用

正在加载评论...