Я пытаюсь создать сериализатор, который выдаст объект, имеющий несколько ссылок на один и тот же объект. Например, существует объект «Кредитор», который имеет два адреса, один из которых - «регистрационный адрес», а второй - «фактический адрес».Использование ActiveModel :: Сериализатор с моделью, имеющей несколько ссылок на один и тот же объект
Модель
class Lender < ActiveRecord::Base
...
belongs_to :address, foreign_key: 'registration_address_id'
belongs_to :address, foreign_key: 'actual_address_id'
...
end
Serializer
class LenderSerializer < ActiveModel::Serializer
embed :ids, include: true
attributes :id, ...
has_one :address, key: :actual_address_id
has_one :address, key: :registration_address_id
end
Когда клиент загружает этот объект с сервера там только один ссылка включена в вывод JSON так же, как это:
{"addresses":[{"id":5,"full_address":"..."}],
"lenders":[{"id":2,"company_title":null,"registration_address_id":5}]}
Проблема заключается в том, что в выходном JSON нет «actual_address_id», и в первом массиве адресов нет «фактического адреса».