respond_to实际返回了什么?

时间:2013-04-10 05:12:34

标签: ruby-on-rails

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文件?

2 个答案:

答案 0 :(得分:1)

respond_to是一个Rails辅助方法,它附加到Controller类(或者更确切地说,它的超类)。它正在引用将发送到View(将转到浏览器)的响应。

示例中的块是格式化数据 - 通过传入块中的“格式”参数 - 只要浏览器发出html或json数据请求,就会从控制器发送到视图。 在rails中你也可以写这个

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

  def index
    @posts = Post.all

    respond_with(@posts)
  end
end

答案 1 :(得分:0)

根据当前请求,

respond_to可以呈现三者中的每一个。正确的反应不是从respond_to返回的,而是实际呈现的内容。 您可以找到完整的解释here