ActiveModel Serializer JSON Включает ключ «атрибуты» - PullRequest
0 голосов
/ 30 декабря 2018

Я использую Сериализатор Rails ActiveModel для вывода JSON на конечную точку API.

Я получаю этот вывод JSON:

{
  "data":[
    {
      "id":"396",
      "type":"profiles",
      "attributes":{
        "name":"Impossibles",
        "created-at":"2017-05-11T18:14:06.201-04:00",
        "updated-at":"2018-04-01T13:34:15.905-04:00",
        "website":"http://soundcloud.com/impossibles"
      }
    }
  ]
}

Но ожидал, что он будет отформатирован так:

{
  "data":[
    {
      "id":"396",
      "type":"profiles",
      "name":"Impossibles",
      "created-at":"2017-05-11T18:14:06.201-04:00",
      "updated-at":"2018-04-01T13:34:15.905-04:00",
      "website":"http://soundcloud.com/impossibles"
    }
  ]
}

Попытка избежать дополнительного уровня вложенностив возвращенном JSON.Есть ли способ удалить ключ "attribute"?

Это мой сериализатор:

class ProfileSerializer < ActiveModel::Serializer
    attributes :id, :name, :created_at, :updated_at, :website
end

И мой контроллер:

def show
  profile = Profile.find(params[:id])
  render json: profile, status: :ok
end

1 Ответ

0 голосов
/ 30 декабря 2018

После прочтения некоторых проблем с GitHub кажется, что вложенность «атрибутов» исходит из спецификации JSON API и - это ожидаемое поведение: https://jsonapi.org/format/#document-resource-objects

Эта проблема была полезной: https://github.com/rails-api/active_model_serializers/issues/2202

Похоже, функция, а не ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...