Ruby on rails 如何将API配置为通过JSON发送ID而不是名称?

Ruby on rails 如何将API配置为通过JSON发送ID而不是名称?,ruby-on-rails,ruby,json,api,Ruby On Rails,Ruby,Json,Api,我正在用Ruby配置一个基本API。它包含两个简单表和一个关联表,但我的联接表给了我一个应该很容易解决的问题。当我在浏览器中打开视图时,它会显示对象名称(在本例中为人)。但是,在view.json中,它显示了id。我希望API将名称作为JSON发送,而不是id。我该怎么做?我的API的配置如下: json.array!(@leituras) do |leitura| json.extract! leitura, :id, :pessoa_id, :livro_id json.url le

我正在用Ruby配置一个基本API。它包含两个简单表和一个关联表,但我的联接表给了我一个应该很容易解决的问题。当我在浏览器中打开视图时,它会显示对象
名称
(在本例中为
)。但是,在view.json中,它显示了
id
。我希望API将
名称
作为JSON发送,而不是
id
。我该怎么做?我的API的配置如下:

json.array!(@leituras) do |leitura|
  json.extract! leitura, :id, :pessoa_id, :livro_id
  json.url leitura_url(leitura, format: :json)
end

你应该试试拉布尔。RABL实现了一个新的模板来呈现Json、xml。。。作为一种观点。我正在使用我的API,它非常有用。

我建议使用活动模型序列化程序

我不推荐RABL,你可能会得到一堆n+1查询,就个人而言,DSL有点奇怪

为对象添加序列化程序

class LeituraSerializer < ActiveModel::Serializer
  attributes :id, pessoa_id, :livro_id
end
类序列化程序 在控制器中,您可以执行以下操作

class LeiturasController < ApplicationController
  def show
     @leituras = Leitura.find(params[:id])

    render json: @leituras
  end
end
类LeiturasController
请在此处阅读更多信息: