Rails中的深层嵌套关联

时间:2018-08-13 08:14:11

标签: activerecord active-model-serializers

我有三个模型-Floor,TableGroups和Table。楼层有很多table_groups,而table_group有很多表,我定义了has_many 并属于模型中的关系在活动模型序列化程序中,我还以相同的方式定义了关系。

class FloorSerializer < ActiveModel::Serializer
  attributes :id, :name
  has_many :table_groups
end

class TableGroupSerializer < ActiveModel::Serializer
  attributes :id, :name
  has_many :tables
  belongs_to :floor
end

class TableSerializer < ActiveModel::Serializer
  attributes :id, :name
  belongs_to :table_group
end

现在,如果点击/ floors api,我希望所有楼层及其数组中的所有table_groups和数组中的表组下的所有表。

但这是我从api获得的答复。虽然我在数据库的表组中有表。

[  
   {  
      "id":1,
      "name":"First Floor",
      "table_groups":[  
         {  
            "id":8,
            "name":"First table group"
         }
      ]
   }
]

但是我想这样

[  
   {  
      "id":1,
      "name":"First Floor",
      "table_groups":[  
         {  
            "id":8,
            "name":"first table group",
            "tables": [
              "id":1,
              "name":"first table",
            ]
         }
      ]
   }
]

那么以这种格式获取数据的最佳解决方案是什么?

0 个答案:

没有答案