Ruby on Rails 2.0的新特性介绍 - 编程入门网
用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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |