Я только начинаю копаться в сериализации в рельсах, и у меня возникают проблемы с настройкой его для вложенной полиморфной ассоциации.
В моих рельсовых магазинах api у меня есть следующие ассоциации:
### Cart model
class Cart < ApplicationRecord
has_many :discounts
end
### Discount model
class Discount < ApplicationRecord
belongs_to :cart
belongs_to :discountable, polymorphic: true
end
### Extras model (extra meaning you get 3 items for price of 2)
class Extra < ApplicationRecord
has_many :discounts, as: :discountable
end
и что я достиг с сериализаторами:
### Cart serializer
class CartSerializer < ActiveModel::Serializer
has_many :discounts
end
### Discount serializer
class DiscountSerializer < ActiveModel::Serializer
attribute :discountable, polymorphic: true
end
который в свою очередь дает мне этот JSON:
{
"discounts": [
{
"discountable": {
"id": 1,
"kind": "extra",
"name": "Grill Set",
"product_ids": [
1,
2,
3
],
"count": 2,
"created_at": "2019-05-11T17:09:44.366Z",
"updated_at": "2019-05-11T17:09:44.366Z"
}
}
]
}
Но меня это не совсем устраивает - я бы хотел пропустить атрибуты create_at и updated_at и скидки, чтобы они отображались один под другим (без учета вложенных вложений).
Примерно так:
{
"discounts": [
{
"id": 1,
"kind": "extra",
"name": "Grill Set",
"product_ids": [
1,
2,
3
],
"count": 2,
}
]
}
Буду рад помощи.