代码之家  ›  专栏  ›  技术社区  ›  Muhammad Rahmatullah

ruby on rails:netflix fast_jsonapi不呈现它定义的属性

  •  1
  • Muhammad Rahmatullah  · 技术社区  · 7 年前

    目前我正在使用 fast_jsonapi gem 用于处理API请求而不是AMS。

    但是当我想从 attributes 或添加自定义字段。

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

    许可证管理员.rb

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

    许可证序列化程序.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文档的正确指示。

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Leo    7 年前

    看起来像是在使用 Fast JSON API 作为 ActiveModelSerializers . Documentation 没有任何升级的引用 ActiveModel . 所以, render json: License.all, status: :ok 不唤起 LicenseSerializer .

    尝试下一步:

    render json: LicenseSerializer.new(License.all).serializable_hash, status: :ok
    
    推荐文章