什么是"respond_to"和"do"以及"| format |" 在这个Rails代码?

TIM*_*MEX 12 ruby ruby-on-rails

class PostsController < ApplicationController
  # GET /posts
  # GET /posts.xml
  def index
    @posts = Post.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @posts }
    end
  end
...
Run Code Online (Sandbox Code Playgroud)
  • 究竟什么是"respond_to"它是rails的一部分吗?
  • 什么是"做"和"|格式|"?为什么格式周围有垂直分隔符?
  • Rails如何知道Post模型?我没有导入该模型.(在Python/Django中,您必须先导入模型才能使用它)

这是来自Ruby on Rails教程:http://edgeguides.rubyonrails.org/getting_started.html#setting-the-application-home-page

enn*_*ler 13

respond_to是一种特定于rails的方法,它定义了如何响应不同格式(如xml和html)的请求.的do|format|描绘一个红宝石块,以do表现得象一个开括号和end作为右括号和|format|限定块变量从获取其值yield内声明responds_to.