2017-10-19 89 views
0

我有两个关联的模型,parent= Activity,它has_many与成本关联。 我做了一个API调用来获取使用序列化器的活动细节,并且还想要添加序列化成本。所以ActivitySerializer里面我已经试过这样:活动模型序列化器has_many关联不起作用

Class ActivitySerializer: < ActiveModel::Serializer 


ActiveModel::Serializer.config.key_transform = :unaltered 




attributes :id, 
      :name, 
      :description 
... 
has_many costs, each_serializer: CostSerializer 
end 

的CostSerializer看起来是这样的:

class CostSerializer < ActiveModel::Serializer 

ActiveModel::Serializer.config.key_transform = :unaltered 

attributes :id, 
      :amount, 
      :description 
end 

结果是活动数据看起来不错,但成本资料给我:

relationships":{"costs":{"data":[{"id":"20","type":"costs"}]} 

不确定数量和说明为何会丢失。 如果我这样做,它的工作原理(添加listCosts到属性在ActivitySerializer):

def listCosts 
    object.costs.map do |cost| 
    CostSerializer.new(cost, scope:scope, root: false, event: object) 
    end 
end 

输出是有点不同的,没有关系,但确实有串行属性,我想。 我正在使用Rails 5.1.3和AMS 0.10。

回答