如何在 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
我想将我从查询中获得的所有程序显示为 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