【发布时间】:2014-10-21 03:00:51
【问题描述】:
如何指定要序列化从抽象类继承的附加属性? (我正在使用 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 中包含它们的特殊属性,但我目前无法使用此代码
这个问题与Simulating constraints and sub-constraints这个问题有些联系
【问题讨论】:
标签: ruby-on-rails json inheritance serialization attributes