这是生成的默认 Rails 代码。我了解代码的作用(来自文档中的解释),但不了解它的作用。
1 class PostsController < ApplicationController
2 # GET /posts
3 # GET /posts.json
4 def index
5 @posts = Post.all
6
7 respond_to do |format|
8 format.html # index.html.erb
9 format.json { render json: @posts }
10 end
11 end
我的理解:
Post.all
返回保存在实例变量 @posts 中的所有帖子的数组respond_to
函数采用默认的“块”(一个匿名函数块,它采用一个参数“格式”- 根据请求的格式,返回相应的输出
我不明白的是:
- 这实际上是如何工作的?第 8 行调用对象的函数
html
方法format
,无论传递何种格式。该html
方法有什么作用?为什么每次都调用这两种方法?他们是吗? - 为什么
json
方法需要参数(调用渲染的块)但html
方法不需要任何参数 - 这个函数有返回任何东西吗?看起来它返回了
json
方法的返回值。
我是 ruby 和 rails 的新手,我开始使用示例,想详细了解每条线的作用。