在专业的Rails应用程序中使用的.json文件到底是什么?
我为自己的Blog创建了一个脚手架,并了解了Postgresql DB的CRUD操作,但是我只是想知道也在脚手架中创建的format.json
行代码。
def create
@blog = Blog.new(blog_params)
respond_to do |format|
if @blog.save
format.html { redirect_to @blog, notice: 'Blog was successfully created.' }
format.json { render :show, status: :created, location: @blog }
else
format.html { render :new }
format.json { render json: @blog.errors, status: :unprocessable_entity }
end
end
end
答案 0 :(得分:5)
JSON是API的常用格式,并且在Rails API中常用。
在控制器中执行format.json
时,您实际上是在说“此路由/端点可以响应JSON请求”,而不仅仅是html请求。
在浏览器中查看网站时,浏览器会自动发送一个名为Accept
的HTTP标头。如:
Accept: <MIME_type>/<MIME_subtype>
Accept: <MIME_type>/*
Accept: */*
这可以是任意数量的MIME类型;包括Accept: application/json
,它将告诉Rails它可以使用JSON进行响应。
浏览器的作用是发送Accept: text/html
,它被视为“嗨,我想要HTML版本”,从而呈现了format.html
块。
另请参见: