Ответ 1
Выключает ответ на это, чтобы использовать волшебство include_xxx? методы...
class BarSerializer < FooSerializr
def include_this?; false; end
def include_that?; false; end
end
Это приведет к сериализации "the_other"
Скажем, у меня есть этот сериализатор
class FooSerializer < ActiveModel::Serializer
attributes :this, :that, :the_other
def this
SomeThing.expensive(this)
end
def that
SomeThing.expensive(that)
end
def the_other
SomeThing.expensive(the_other)
end
end
Если операции для отдельных сериализованных значений несколько дороги...
И затем у меня есть другой сериализатор, который должен использовать это, но не возвращать всех членов:
class BarSerializer < FooSerializr
attributes :the_other
end
Это не работает... У BarSerializer все еще есть это, это, и другое...
Как я могу использовать наследование, но не автоматически получать одинаковые атрибуты? Я ищу решение, отличное от модулей mixins.
Выключает ответ на это, чтобы использовать волшебство include_xxx? методы...
class BarSerializer < FooSerializr
def include_this?; false; end
def include_that?; false; end
end
Это приведет к сериализации "the_other"
Сделайте класс BarSerializer
для родителей и поместите в него метод the_other
. FooSerializer
наследует только метод и атрибут, определенные в BarSerializer
.