如何指定我想序列化从抽象类继承的类的其他属性? (我正在使用ActiveModel :: Serializer)
编辑:我需要在序列化程序中保留关联/引用,而不仅仅是属性
class AbstractClass
[attributes]
**has_one :reference** # Added after Edit
end
class Foo < AbstractClass
field :some_special_foo_field
end
class Bar < AbstractClass
field :some_other_bar_field
end
Class Baz
has_many :abstract_class
end
我想要一个看起来像
的JSON{:baz => [
{ id => "foo_1_ID",
some_special_foo_field => "something"
}, {
id => "bar_1_ID,
some_other_bar_field => "Somewhere"
}]
我正在控制器的某个地方:
@bazz = Baz.all
respond_to do |format|
format.json { render json: @bazz}
end
class BazSerializer < ActiveModel::Serializer
attributes [what I need]
has_many :constraints, serializer: AbstractClassShortSerializer, embed: :objects
end
class AbstractClassSerializer
**has_one :reference, serializer: SomethingSerializer, embed: :objects** # Added after Edit
attributes :[attributes I want to keep]
end
现在问题:取决于@bazz中的对象是Foo还是Bar,我想在我的JSON中使用它们的特殊属性,但我目前无法使用此代码
有些联系答案 0 :(得分:1)
简单说明:
has_many
这样做:
baz
端