【发布时间】:2018-02-04 00:08:59
【问题描述】:
我希望能够在活动模型序列化程序中自定义与 json api 适配器一起使用的 id。
也就是说,我有一个项目,其中正在序列化的特定模型的实际 ruby-on-rails ID 由于各种原因不被认为是面向公众的,但是可以使用替代的面向公众的唯一标识符。
我想使用此标识符作为 json api 序列化内容的 id,但我无法找出任何明显的方法来覆盖 json api 序列化程序中的 ID。
基本上,给定模型[{ id: 1, alt_id: '2aef7e'}, { id: 2, alt_id: '3b47c0' } ...] 我想要一种创建序列化版本的方法:
{
"data":
[{
"id" : "2aef7e",
"type" : "my-model",
"attributes" : {...},
"relationships" : {...}
},{
"id" : "3b47c0",
"type" : "my-model",
"attributes" : {...},
"relationships" : {...}
}],
"included" : [ ... ]
}
代替:
{
"data":
[{
"id" : "1",
"type" : "my-model",
"attributes" : {...},
"relationships" : {...}
},{
"id" : "2",
"type" : "my-model",
"attributes" : {...},
"relationships" : {...}
}],
"included" : [ ... ]
}
但一直无法找到一种明显的方法来覆盖 ID 值以进行序列化。
【问题讨论】:
-
(为什么
attribute :id do ...不起作用?)
标签: ruby-on-rails active-model-serializers json-api