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
...
这是来自Ruby on Rails教程:http://edgeguides.rubyonrails.org/getting_started.html#setting-the-application-home-page
答案 0 :(得分:13)
respond_to
是一种特定于rails的方法,用于定义如何响应不同格式(如xml和html)的请求。 do
和|format|
描述了一个ruby块,其中do
的作用类似于左大括号,end
作为右大括号,|format|
定义了块变量从yield
中的responds_to
语句中获取其值。
答案 1 :(得分:2)
“do”是一个RUBY块,而“| format |”可以是任何东西,它只是在该块中使用的变量,这是另一个例子:
respond_to do |x|
x.html # index.html.erb
x.xml { render :xml => @posts }
end
答案 2 :(得分:0)
respond_to
is a Rails method. do
and the block's parameter (format
) is standard Ruby.