Rails控制器 - “响应格式化”html和json的目的是什么?

时间:2013-11-11 17:06:11

标签: ruby-on-rails xml json

Ruby on Rails问题: 在控制器内部,您有七个REST操作。几乎所有人都响应格式化xml / html或json。我不知道这是什么意思。你能解释一下它的用途吗? 例如:

def index
  @tweets = Tweet.all

  respond_to do |format|
   format.html
   format.json { render json: @tweets }
  end
end

包含html和json的“响应”部分的目的是什么?这些格式有什么作用? 另外,xml和html有什么区别?有时我会看到xml和其他时间的HTML。

谢谢

1 个答案:

答案 0 :(得分:1)

它只是一种告诉控制器如何响应不同请求类型的方式。例如,您的客户可能需要您的html或xml信息:

def index
 @people = Person.find(:all)

  respond_to do |format|
    format.html
    format.xml { render :xml => @people.to_xml }
  end
end
  

这就是说,“如果客户希望HTML响应此操作,只需像以前一样回复,但如果客户端需要XML,则返回XML格式的人员列表。” (Rails根据客户端提交的HTTP Accept标头确定所需的响应格式。)

http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to