首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails: Netflix fast_jsonapi不呈现它定义的属性

Rails: Netflix fast_jsonapi不呈现它定义的属性
EN

Stack Overflow用户
提问于 2018-07-30 06:44:24
回答 1查看 1.6K关注 0票数 1

目前,我使用jsonapi宝石来处理API请求,而不是AMS。

但是,当我想从attributes中删除某些字段或添加自定义字段时。

它不会出现,输出将返回与模型相关的所有字段。

licenses_controller.rb

代码语言:javascript
复制
class Api::V1::LicensesController < ApiController
  api :GET, "/v1/licenses", "get Listing licenses"
  formats ['json']
  def index
     render json: License.all, status: :ok
  end
end

license_serializer.rb

代码语言:javascript
复制
 class LicenseSerializer
  include FastJsonapi::ObjectSerializer
  attributes :code, :module
end

返回输出

代码语言:javascript
复制
[  
   {  
      "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"
   }
]

预期产出:

代码语言:javascript
复制
[  
   {  
      "id":6011,
      "code":"TBI-DA",
      "module":"Data Accessing"
   },
   {  
      "id":6012,
      "code":"TBI-DAP",
      "module":"Dashboard Analytical Processing"
   }
]

我错过什么配置了吗?我认为,我遵循了基于gem文档的正确指示。

伙计们有什么建议吗?我真的很感激任何帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 07:09:25

看起来像使用Fast JSON API作为ActiveModelSerializers文档没有任何关于升级ActiveModel的参考。因此,render json: License.all, status: :ok没有引起LicenseSerializer的注意。

下一个尝试:

代码语言:javascript
复制
render json: LicenseSerializer.new(License.all).serializable_hash, status: :ok
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51588340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档