2013-04-10 95 views
0
respond_to do |format| 
    format.html { render :html => @something } 
    format.json { render :json => @something } 
    format.xml { render :xml => @something } 
end 

这里我们有三种不同的格式:html,json,xml。那么实际返回哪一个?我们有三个以.html,.xml,.json结尾的不同文件吗?或者换句话说,respond_to渲染所有三个html,json,xml文件?respond_to实际返回的是什么?

回答

0

respond_to可以根据当前请求呈现三个中的每一个。正确的回应不是从respond_to返回的,而是实际呈现的内容。 你可以找到完整的解释here

1

respond_to是连接到控制器类(或更确切地说,它的超类)的Rails辅助方法。它引用将发送给View的响应(将发送到浏览器)。

您示例中的块通过传递块中的'格式'参数来格式化数据,以便每当浏览器发出对html或json数据的请求时从控制器发送到视图。 in rails你也可以这样写

class PostsController < ApplicationController 
    respond_to :html, :xml, :js 

    def index 
    @posts = Post.all 

    respond_with(@posts) 
    end 
end 
相关问题