Я пишу сериализатор, который включает в себя has_one :source
. source
может быть нескольких типов. Я пытаюсь сделать JSON меньше, когда source
является Foo
по overriding the association methods. Я попытался это:Условное переопределение метода ассоциативной ассоциации серийных операторов
def source
return super unless source_type == 'Foo'
render json: source, serializer: LimitedFooSerializer
end
Но тогда я получаю не метод суперкласса `источник».
Тогда я попробовал:
def source
render json: source unless source_type == 'Foo'
render json: source, serializer: LimitedFooSerializer
end
Но что ошибки уровень стека слишком глубоко; по-видимому, это бесконечная рекурсия.
Как я могу условно переопределить метод ассоциации?