私は2つの関連モデルparent= Activity
を持っていますが、それはコストに関連しています。 シリアライザを使用するアクティビティの詳細を取得するための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"}]}
金額と説明がドロップされる理由をよく分かりません。 私はこれを行う場合、それは(ActivitySerializer内の属性にlistCostsを追加)作品:関係を持っていない、
def listCosts
object.costs.map do |cost|
CostSerializer.new(cost, scope:scope, root: false, event: object)
end
end
出力が少し異なりますが、シリアライザを持っている私がしたいことを属性。 AMS 0.10でRails 5.1.3を使用しています。
でディスカッションをチェックアウトすることができます。追加されたリンクはわかりました。ありがとうございました。 –