【问题标题】:using active model serializer to nest the same model based on criteria使用活动模型序列化器根据条件嵌套相同的模型
【发布时间】:2017-04-13 14:09:40
【问题描述】:

我想使用活动模型序列化程序来序列化 JSON。问题是嵌套需要基于某些标准在同一模型上,例如

我的模特是

name  | code | description     | group_name | group_code
--------------------------------------------------------
adhir | ad   | some desc       | grp1       | g1
aima  | ai   | some other desc | grp1       | g1

我希望 JSON 看起来像

[
  { 
    group_name: grp1, 
    group_code: g1, 
    values: [
      { 
        name: adhir, 
        code: ad, 
        desc: some desc
      }, 
      { 
        name: aima, 
        code: ai, 
        desc: some other description
      }
    ]

感谢所有帮助

【问题讨论】:

    标签: ruby-on-rails ruby active-model-serializers


    【解决方案1】:

    我不确定是否可以在普通的 active-model-serializers 中实现。您可以将它与简单的 JSON 生成结合起来。此外,您可以在 map 中插入自己的序列化程序。

     Category
       .all
       .group_by { |category| [category.group_name, category.group_code] }
       .map do |key, records|
       {
         group_name: key[0],
         group_code: key[1],
         values: records.map { |record| CategoriesSerializer.new(record, {}).attributes }
       }
     end
    

    使用序列化器:

     class CategoriesSerializer < ActiveModel::Serializer
       attributes :name, :code, :description
     end
    

    【讨论】:

      猜你喜欢
      • 2016-09-03
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2019-02-04
      • 1970-01-01
      相关资源
      最近更新 更多