目前,我使用jsonapi宝石来处理API请求,而不是AMS。
但是,当我想从attributes中删除某些字段或添加自定义字段时。
它不会出现,输出将返回与模型相关的所有字段。
licenses_controller.rb
class Api::V1::LicensesController < ApiController
api :GET, "/v1/licenses", "get Listing licenses"
formats ['json']
def index
render json: License.all, status: :ok
end
endlicense_serializer.rb
class LicenseSerializer
include FastJsonapi::ObjectSerializer
attributes :code, :module
end返回输出
[
{
"id":6011,
"code":"TBI-DA",
"module":"Data Accessing",
"amount":"1 lisensi server",
"serial_number":"serial_6011",
"created_at":"2018-07-30T11:13:22.002+07:00",
"updated_at":"2018-07-30T11:13:22.002+07:00"
},
{
"id":6012,
"code":"TBI-DAP",
"module":"Dashboard Analytical Processing",
"amount":"200 lisensi pengguna",
"serial_number":"serial_6012",
"created_at":"2018-07-30T11:13:22.018+07:00",
"updated_at":"2018-07-30T11:13:22.018+07:00"
}
]预期产出:
[
{
"id":6011,
"code":"TBI-DA",
"module":"Data Accessing"
},
{
"id":6012,
"code":"TBI-DAP",
"module":"Dashboard Analytical Processing"
}
]我错过什么配置了吗?我认为,我遵循了基于gem文档的正确指示。
伙计们有什么建议吗?我真的很感激任何帮助:)
发布于 2018-07-30 07:09:25
看起来像使用Fast JSON API作为ActiveModelSerializers。文档没有任何关于升级ActiveModel的参考。因此,render json: License.all, status: :ok没有引起LicenseSerializer的注意。
下一个尝试:
render json: LicenseSerializer.new(License.all).serializable_hash, status: :okhttps://stackoverflow.com/questions/51588340
复制相似问题