Rails应用程序中使用的.json文件是什么?

时间:2019-01-23 14:37:23

标签: ruby-on-rails json crud

在专业的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

1 个答案:

答案 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块。

另请参见: