快速业务通道

Ruby on Rails 2.0的新特性介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
用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手机上面

说到iPhone手机,我们可以自己造一个专用的类型来实现内部路由。当你需要类似iPhone这样的特殊 的HTML接口的时候,我们所要做的就是:

# should go in config/initializers/mime_types.rb 
Mime.register_alias "text/html", :iphone 
 
class ApplicationController < ActionController::Base 
 before_filter :adjust_format_for_iphone 
 
 private 
  def adjust_format_for_iphone 
   if request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/

(iPhone|iPod)/] 
    request.format = :iphone 
   end 
  end 
end 
 
class PostsController < ApplicationController 
 def index 
  respond_to do |format| 
   format.html  # renders index.html.erb 
   format.iphone # renders index.iphone.erb 
  end 
 end 
end

你完全可以在config/initializers/mime_types.rb里面注册自己的mime type类型的映射,这个文件 默认已经提供了。

Action Pack: Record identification

Ruby on Rails 2.0的新特性介绍(3)

时间:2011-11-09 javaeye robbin

为了驱使你使用基于资源的映射,我们对资源映射的controller和view的URL处理进行了大量的简化。 我们添加了大量的命名约定,让你可以直接把model对象转化为资源映射的路由,例如:

# person is a Person object, which by convention will  
# be mapped to person_url for lookup 
redirect_to(person) 
link_to(person.name, person) 
form_for(person)

Action Pack: HTTP Loving

如你所期望的那样,Rails2.0的Action Pack更加贴近HTTP,并且充分利用HTTP协议,例如资源、多种 视图,还有更多的呢。我们添加了一个模块来处理HTTP的Basic验证,它能够让授权的API轻松跨越SSL协 议,而且他是如此的简单易用。下面是一个例子(更多的例子请参考 ActionController::HttpAuthentication):

class PostsController < ApplicationController 
 USER_NAME, PASSWORD = "dhh", "secret"  
 
 before_filter :authenticate, :except => [ :index ] 
 
 def index 
  render :text => "Everyone can see me!"  
 end 
 
 def edit 
  render :text => "I''m only accessible if you know the password"  
 end 
 
 private 
  def authenticate 
   authenticate_or_request_with_http_basic do |user_name, password|  
    user_name == USER_NAME && password == PASSWORD 
   end 
  end 
end

此外,我们也做了很多工作让你把JavaScript和CSS文件组织到一个逻辑单元里面去,而不需要让浏览 器发起多次HTTP请求,分别获取每个JavaScript和CSS文件,以便减少HTTP请求次数。使用 javascript_include_tag(:all, :cache => true) 这个helper在生产环境下自动把 public/javascripts/目录下面的所有js文件打包到单个public/javascripts/all.js文件里面,但在开发 环境下,仍然保持每个文

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号