如何为我的应用程序覆盖active_model_serializer json_key?

时间:2018-10-12 00:41:27

标签: json serialization activerecord ruby-on-rails-5 active-model-serializers

使用ActiveModelSerializer,我想使用一个唯一的/books/:id键,然后针对所有请求(例如,payload{ payload: [{},{},{}] { 序列化我的书籍资源,并使用一个奇异的{ payload: {} { 键)数据。

/书

:json_api

/ books /:id

ActiveModelSerializers.config.adapter = :json_api

我尝试过的事情:

1。使用data适配器

{
   data: [{},{},{}]
}

{
   data: {}
}

将应用json键。

root

2。在控制器中使用ActiveModelSerializers.config.adapter = :json 适配器和root

render json: Book.all, root: 'payload'

我可以指定{ payload: [{},{},{}] } { payload: {} }

json

根据需要返回

json_key

但是我不想在每个渲染器上都重复一次。

3。使用 class BookSerializer < ActiveModel::Serializer def json_key 'payload' end end 适配器并覆盖payload

{
   payloads: [{},{},{}]
}

{
   payload: {}
}

除了序列化数组或资源时它返回复数的serObj.SelectToken("response")("list")之外,我喜欢这种解决方案

JArray

如何为序列化程序设置默认根目录?

(或模型,控制器或应用程序,如果需要的话)

0 个答案:

没有答案