如何在 rails api 中获得 json 响应

How to get json response in rails api

我想将我从查询中获得的所有程序显示为 json 响应。我正在获取节目,但不知道如何通过 json 呈现它们。我正在使用 jbuilder gem 并创建了一个 create.json.buider.rb 文件。在我的查询中,我得到的一切都是正确的,但我没有收到 JSON 响应,其中包含我在查询中的任何详细信息。

这是我的控制器。我试过这样,但没有收到 json 响应。只有状态为 200.

class Api::V1::Categories::ProgrammesController < ApiController
  respond_to :json
  def category
    @category=Category.all
    @programmes=Programme.joins(:category).find_by(category_id: params[:category_id])
    if @programmes.present?
      render :json=> {:message=>"Programme not exists "}, :status=>422
    else
      render :json => @programmes
    end
  end
end

我的 create.json.jbuilder 文件:

json.programmes @programmes

我认为你应该将 @programmes 更改为 { :programmers => @programmes.as_json }

class Api::V1::Categories::ProgrammesController < ApiController
  def category
    @category = Category.all
    @programmes = Programme.joins(:category).find_by(category_id: params[:category_id])
    if @programmes.present?
      render :json=> {:message=>"Programme not exists "}, :status=>422
    else
      render :json => { :programmers => @programmes.as_json }
    end
  end
end