What is “respond_to” and “do” and “|format|” in this Rails code?
1 2 3 4 5 6 7 8 9 10 11 12 | 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 ... |
-
" respond_to"到底是什么?
铁轨的一部分? - 什么是" do "和" | format | "?为什么在格式周围有垂直分隔符?
- Rails如何知道Post模型?我没有导入该模型。 (在Python / Django中,必须先导入模型,然后才能使用它)
这来自Ruby on Rails教程:http://edgeguides.rubyonrails.org/getting_started.html#setting-the-application-home-page
" do"是RUBY块,而" | format |"可以是任何东西,它只是要在该块中使用的变量,这是另一个示例:
1 2 3 4 | respond_to do |x| x.html # index.html.erb x.xml { render :xml => @posts } end |
-
respond_to 是Rails方法。 -
do 和块的参数(format )是标准Ruby。 - Rails自动加载各种库,并在各个位置公开它们。另一个示例是视图帮助程序,它们在模板中自动可用,但在控制器中不可用。 (但是可以,默认情况下不是。)