ruby-on-rails - 主动模型串行器扁平结构

标签 ruby-on-rails api active-model-serializers rails-api flat

我正在为我的 React/Redux 应用程序构建 api 服务器,我需要服务器的一些平坦响应来管理和减少我的状态。

例如,当我收到以下回复时:

[{
  id: 1,
  title: 'Some Article',
  author: {
    id: 1,
    name: 'Dan'
  }
}, {
  id: 2,
  title: 'Other Article',
  author: {
    id: 1,
    name: 'Dan'
  }
}]

我怎样才能让它看起来像:

{
  result: [1, 2],
  entities: {
    articles: {
      1: {
        id: 1,
        title: 'Some Article',
        author: 1
      },
      2: {
        id: 2,
        title: 'Other Article',
        author: 1
      }
    },
    users: {
      1: {
        id: 1,
        name: 'Dan'
      }
    }
  }
}

最好的功能是每个键是文章/用户 ID,因此我可以轻松地从响应中获取它并将其合并到我的前端应用程序中。

最佳答案

您可以使用 AMS 实现此目的,但您必须编写一个自定义适配器,因为没有一个库存适配器提供这种精确的格式。

JSON API(以及相应的 AMS JsonApi 适配器)解决了此问题,但格式与您想要的格式略有不同。

关于ruby-on-rails - 主动模型串行器扁平结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33065742/

相关文章:

ruby-on-rails - 为什么我得到 'nil' 不是与 ActiveModel 兼容的对象。它必须实现 :to_partial_path error?

ruby-on-rails - 由于重定向到索引 Action ,如何在销毁 Action 上显示错误消息?

swift - 通过相同的结构从不同的 API 获取数据?

java - 树形结构游标API

api - 是否有任何免费的电影列表和放映时间 API?

javascript - #<Task :0x007f91f6442390> 的未定义方法 `upcase'

ruby-on-rails - Rails XML 生成器不呈现

ruby-on-rails - 最新的 Active_Model_Serializers 打破了 Devise Views

testing - 将 Rspec 模拟转换为 Mocha 以测试事件模型序列化器

ruby-on-rails - 如何将响应格式从 fast_jsonapi 格式更改为 AMS gem 响应格式